zoukankan      html  css  js  c++  java
  • 深入熟悉C# (待续)

    有关于C#索引器,感觉用了索引器之后,就是可以避免用传统的new实例点方法名的方式了
    如:
        传统: 
           DayCollection week = new DayCollection();
           System.Console.WriteLine(System.Convert.ToString(week.GetDay("Fri")));

     用了索引器之后
           DayCollection week = new DayCollection();
           System.Console.WriteLine(week["Fri"]);

    // Using a string as an indexer value
    class DayCollection
    {
    string[] days = { "Sun", "Mon", "Tues", "Wed", "Thurs", "Fri", "Sat" };
    // This method finds the day or returns -1
    private int GetDay(string testDay)
    {
    int i = 0;
    foreach (string day in days)
    {
    if (day == testDay)
    {
    return i;
    }
    i++;
    }
    return -1;
    }
    // The get accessor returns an integer for a given string
    public int this[string day]
    {
    get
    {
    return (GetDay(day));
    }
    }
    }
    class Program
    {
    static void Main(string[] args)
    {
    DayCollection week = new DayCollection();
    System.Console.WriteLine(week["Fri"]);
    System.Console.WriteLine(week["Made-up Day"]);
    }
    }
    -----------------------------------------------------------------
    New 修饰符:
    使用 new 修饰符显式隐藏从基类继承的成员。若要隐藏继承的成员,
    请使用相同名称在派生类中声明该成员,并用 new 修饰符修饰它。
    public class MyBaseC
    {
    public int x;
    public void Invoke() {}
    }

    在派生类中用 Invoke 名称声明成员会隐藏基类中的 Invoke 方法,即:

    public class MyDerivedC : MyBaseC
    {
    new public void Invoke() {}
    }
    但是,因为字段 x 不是通过类似名隐藏的,所以不会影响该字段。
     
    在同一成员上同时使用 new 和 override 是错误的。
     
    -----------------------------------------------------------------
    server.Transfer方法提供了跨页面提交的支持。
    1.在页面1中设置要跨页提交的属性
    2.当单击按钮的时候,数据从页面1提交到页面2
    3.页面2接收页面1所有的ViewState
    4.如果PreviousPage可以访问,则为页面1从新提供一个实例
    5.页面1从新进行初始化操作
    6.此时页面2才可以访问页面1中的数据
    有些情况下,应用程序需要在页回发至服务器后仍保留它在浏览器中的位置。
    ex:
        如果数据项导致大型页回发,则最终用户需要将页滚动到此前正在编辑它们的位置,才能继续。
    页开发人员通过以下方法可以简单地标记窗体,
    以维持滚动位置:
    在@Page指令中将MaintainScrollPositionOnPostBack属性设置为true,
    或在web.config中进行此设置,以应用于应用程序中的所有页。
     
    MaintainScrollPositionOnPostBack  
                                   就是在刷新页面之后保持当前浏览内容的位置。
     
    用于控件的一个令人惊喜的新功能是“客户端回调”,
    该功能允许控件向服务器执行带外请求以获取附加数据,而不发送整页。
    此功能依赖于用于回调处理(通常通xmlhttp)的浏览器支持,
    该支持由SupportsClientCallBacks在浏览器功能中指定情况下,
    页自身将实现ICallbackEventHandler接口,以用于演示用途。

    ------------------------------------------------------------------------------------internal:
         内部成员只有在同一程序集中的文件内才是可访问的,
           内部访问通常用于基于组件的开发,因为它使一组组件能够以私有方式进行合作,
           而不必向应用程序代码的其余部分公开.
       * 尽管不能用 C# 重写 internal virtual 方法,但可以用某些语言(如使用 Ilasm.exe 的文本 Microsoft 中间语言 (MSIL) 重写它。

    
    
    
  • 相关阅读:
    DIY 作品 及 维修 不定时更新
    置顶,博客中所有源码 github
    openwrt PandoraBox PBR-M1 极路由4 HC5962 更新固件
    使用 squid 共享 虚拟专用网至局域网
    第一次参加日语能力测试 N5
    libx264 libfdk_aac 编码 解码 详解
    开发RTSP 直播软件 H264 AAC 编码 live555 ffmpeg
    MFC Camera 摄像头预览 拍照
    http2 技术整理 nginx 搭建 http2 wireshark 抓包分析 server push 服务端推送
    plist 图集 php 批量提取 PS 一个个切
  • 原文地址:https://www.cnblogs.com/RuiLei/p/385771.html
Copyright © 2011-2022 走看看