zoukankan      html  css  js  c++  java
  • C#高级编程学习笔记——.NET Framework4中的新特性

    1、背景

    .NET Framework第一版在2002年发布。.NET Framework 2.0 在2005年发布,可以认为是该架构的一个主要版本。对于.NET Framework的每个版本,Microsoft对所开的代码尽可能少的不兼容修改。

    2、新增动态类型

      动态语言(JavaScrip、Python和Ruby)进步非常快,由于这类编程越来越流行,C#发布了一个新的动态类型功能。让动态语言运行库(DLR)在运行期间确定对象的类型。

    使用新的Dynamic关键字访问DLR,这个关键字对于编译器是一个标记,只要遇到这个关键字,编译器就认为他是一个动态调用。

    3、可选参数和命名参数

      可选参数在VB中已经存在一段时间了,.NET 4中C#能够使用该特性。举例如下:

    public void CreateUser(string firstName,string lastName,
    bool isAdmin,bool isTrialUser)
    {
      //  
    }
    
    //使用可选参数,可以重载该方法,得到好几个方法。如下:
    
    public void CreateUser(string firstName,string lastName,
    bool isAdmin = false,bool isTrialUser = false)
    {
    
    }
    
    //可以使用以下几个方法
    
    CreateUser("xie","yao");
    CreateUser("xie","yao",false);
    CreateUser("xie","yao",true,true);
    
    //使用了命名参数,isTrialUser,使得代码看起来更加直观
    CreateUser("xie","yao",isTrialUser: false);

    命名参数:

    system.IO命名空间

    File.Copy(@"c:xxxxxxxx",@"d:xxxxxxxx",true);
    //以上代码不直观,不知道参数的意义
    
    //使用命名参数,很容易阅读和理解这行代码,对编译没有影响
    File.Copy(sourceFileName:@"c:xxxxxxxx",destFileName:@"d:xxxxxxxx",overwrite:true);

    4、协变和抗变

    以前版本中,可以对对象和数组使用抗变,但是不能对泛型接口使用抗变。

    而在.NET 4中可以对泛型接口使用抗变。

    参考:C#高级编程 清华大学出版社

  • 相关阅读:
    [Luogu] 借教室
    [Luogu] 子共七
    [Luogu] 让我们异或吧
    【bzoj1030】[JSOI2007]文本生成器
    HDU3068 最长回文
    【bzoj2342】[Shoi2011]双倍回文
    【NOIP2012】借教室
    HDU2203 亲和串
    【POJ2001】Shortest Prefixes
    vodevs3031 最富有的人
  • 原文地址:https://www.cnblogs.com/jndx-ShawnXie/p/9588425.html
Copyright © 2011-2022 走看看