.net4.0新增特性

.net4.0新增特性主要有

一、动态类型

  让动态语音运行库(Dynamic Language Runtime,DLR)在运行期间动态确定对象的类型方式。使用C#新增的动态功能,可以更好的进行交互操作,更容易的使用Dom。在4.0版本中,Microsoft包含了动态语音运行库,DLR建立在CLR基础上,提供了把所以动态语音交互操作链接起来的功能,C#使用dynamic关键字访问新的DLR。这对于编译器是一个标记,只要遇到这个标记,编译器就认为这是一个动态调用,而不是一般的静态调用。

二、可选参数和命名参数

  可选参数允许为方法的一些参数提供默认值,并且允许使用者重载类型,因此即使只有一个方法,也能处理所有变体。如:

1 public void CreateUser(string firstName,string lastName,bool isAdmin=false,bool isTrialUser=true)
2 {
3 }

在使用者调用时就可以这样调用该方法:

1 myClass.CreateUser("Bill","Ebjen");
2 myClass.CreateUser("Bill","Ebjen",true);
3 myClass.CreateUser("Bill","Ebjen",true,false);
4 myClass.CreateUser("Bill","Ebjen"isTrailUser:false);

命名参数会潜在的改变编写代码的方式,该功能能使代码更容易编写和阅读。例如,看一下System.IO名称空间的File.Copy()方法,一般构建为:

File.Copy(@"C:\myTestFile.txt",@"C:\myOtherFile.txt",true);

在这个方法中使用3个参数,但实际传递给Copy()方法的是什么内容?除非知道这个方法的前前后后,否则仅看一眼该方法,很难判读出该方法会执行何种操作。而通过命名参数就可以在提供参数值之前使用代码中的参数名,如下:

File.Copy(sourceFileName:@"C:\myTestFile.txt",destFileName:@"C:\myOtherFile.txt",overwrite:true);

通过命名参数,就很容易阅读和理解这行代码的操作,使用命名参数对最终编译没有影响,命名参数仅应用在应用程序的编码中。

三、协变和抗变

  虽然在.net framework的以前版本中包含协变和抗变,但他们在.Net4.0中进行了扩展,当处理泛型、委托等时,它们会执行的更好。例如:以前版本可以对对象和数组使用抗变,但不能对泛型接口使用抗变。而在.Net4.0中就可以对泛型接口使用抗变。

四、Asp.Net MVC

  Asp.Net MVC是Asp.Net最新的只要新增内容,他为开发团队带来了许多惊喜。Asp.Net MVC提供了许多开发人员期待的、使用模型-视图-控制器来创建Asp.Net的方式。Asp.Net MVC在开发人员构建应用程序中提供了可测试性、灵活性和可维护性。记住:Asp.Net MVC不是每个人都知道和喜欢的Asp.Net替代品,而只是构建应用程序的另一种方式。

  Asp.Net这个版本允许使用这个新模型构建应用程序,它完全内潜在Framework和Visual Studio中。



 

posted on 2011-11-10 17:00  paulma  阅读(5108)  评论(4编辑  收藏  举报