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命名空间

扫描二维码关注公众号,回复: 3055232 查看本文章
File.Copy(@"c:\xx\xx\xx\xx",@"d:\xx\xx\xx\xx",true);
//以上代码不直观,不知道参数的意义

//使用命名参数,很容易阅读和理解这行代码,对编译没有影响
File.Copy(sourceFileName:@"c:\xx\xx\xx\xx",destFileName:@"d:\xx\xx\xx\xx",overwrite:true);

4、协变和抗变

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

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

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

猜你喜欢

转载自www.cnblogs.com/jndx-ShawnXie/p/9588425.html