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) 重写它。

    
    
    
  • 相关阅读:
    Linux命令(一)
    数据库SQL学习(一)
    Eclipse
    VsCode支持的markdown语法参考(一)
    常用算法Tricks(一)
    dispose方法的使用
    收藏一个链接
    我还不知道取什么名字
    NioSocket的用法
    随便乱塞塞2~
  • 原文地址:https://www.cnblogs.com/RuiLei/p/385771.html
Copyright © 2011-2022 走看看