C# 5.0将带来的五大全新功能

第一:绑定运算符,:=:

  这个只是简化了数据绑定,跟ASP.NET MVC3不断改进一样,其实不是什么亮点改进。

comboBox1.Text : = : textBox1.Text;  // 将文本框的内容绑定到下拉框。

  第二:带参数的泛型构造函数:

  这个的加入给一些设计增加了强大功能,泛型早在C#2.0加入后就有着强大的应用,一般稍微设计比较好的框架,都会用到泛型,C#5.0加入带参数泛型构造函数,则在原有基础上对C#泛型完善了很多。:)

   public  class T MyClass : T: class,  new ()

  
// we might have

  
public  class T MyClass : T:class,  new ( int )

  第三:支持null类型运算:

  此功能,个人觉得并非什么大的亮点,但至少对null类型,特别是有数据计算的这种null类型的支持,写代码还是方便不少。

转自:http://tech.hexun.com/2011-05-24/129908043.html

  注意对于Nullable Types,在C#2.0就加入进来了,但是不支持计算,比如:

   int ? x  =   null ;

  
int ? y  =  x  +   40 ;

  那么y值是多少?不支持计算,得到的是null,想必大家知道为什么结果是null了吧?但C#5.0可以,40加一个null的整数,我们要的结果是40,不过份吧?

   int  x?  =   null ;

  
int  y?  =  x  +   40 ;

  Myobject obj 
=   null ;

  Myotherobj obj2 
=  obj.MyProperty ???  new  Myotherobj();

  第四:case支持表达式:

  这个是一个我很早就想如果能这样就好了,没想到在C#5.0里就加入此功能,以前case里只能写一个具体的常量,而现在可以加表达式了,灵活多了。

  switch(myobj){

  
case   string .IsNullorEmpty(myotherobj):

  
// 逻辑代码

  
case  myotherobj.Trim().Lower:

  
// 逻辑代码

  }

  第五:扩展属性。

  我们在C#3.0里有扩展方法,那么在C#5.0里将会加入扩展属性的感念,对照扩展方法,不难理解扩展属性的概念了。以下为扩展属性的定义举例:

  [Associate( string )]

  
public  static  int  Zivsoft_ExtensionProperty {  get ; set ;}

  C#5.0 远远不只是上面描述的5点新功能,它如同C#4.0加入dynamic概念一样,会加入异步处理概念,这个不是几行代码就能表达,而是将在设计,架构上,又会掀起一次飞跃……

  为了大家抢先看,就给一段C#5.0一段简单的异步操作的代码例子,注意(C#5.0两个新加的关键字async, await):

  Task GetMovieAsync( string  title);

  Task PlayMovieAsync(Movie movie);

  async void GetAndPlayMoviesAsync(
string [] titles)

  {

  foreach (var title in titles)

  {

  var movie 
=  await GetMovieAsync(title);

  await PlayMovieAsync(movie);

  }

  }

你可能感兴趣的:(C# 5.0将带来的五大全新功能)