C# 5.0五大新特性


第一:綁定運算符,:=:

這個只是簡化了數據綁定,跟ASP.NET MVC3不斷改進一樣,其實不是什么亮點改進。

 

[csharp]  view plain  copy
 
  1. comboBox1.Text :=: textBox1.Text; //將文本框的內容綁定到下拉框。  

 

第二:帶參數的泛型構造函數:

這個的加入給一些設計增加了強大功能,泛型早在C#2.0加入后就有着強大的應用,一般稍微設計比較好的框架,都會用到泛型,C#5.0加入帶參數泛型構造函數,則在原有基礎上對C#泛型完善了很多。:)

 

[csharp]  view plain  copy
 
  1. public class T MyClass : T: class, new()  
  2. public class T MyClass : T:class, new(int)  

 

第三:支持null類型運算:

此功能,個人覺得並非什么大的亮點,但至少對null類型,特別是有數據計算的這種null類型的支持,寫代碼還是方便不少。

注意對於Nullable Types,在C#2.0就加入進來了,但是不支持計算,比如:

int? x = null;

int? y = x + 40;

那么y值是多少?不支持計算,得到的是null,想必大家知道為什么結果是null了吧?但C#5.0可以,40加一個null的整數,我們要的結果是40,不過份吧?

 

[csharp]  view plain  copy
 
  1. int x? = null;  
  2. int y? = x + 40;  
  3. Myobject obj = null;  
  4. Myotherobj obj2 = obj.MyProperty ??? new Myotherobj();  

 

第四:case支持表達式:

這個是一個我很早就想如果能這樣就好了,沒想到在C#5.0里就加入此功能,以前case里只能寫一個具體的常量,而現在可以加表達式了,靈活多了。

 

[csharp]  view plain  copy
 
  1. switch(myobj){  
  2. llorEmpty(myotherobj):  
  3. //邏輯代碼  
  4. case myotherobj.Trim().Lower:  
  5. //邏輯代碼  
  6. }  

 

第五:擴展屬性。

我們在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):

 

[csharp]  view plain  copy
 
  1. Task<Movie> GetMovieAsync(string title);  
  2.   
  3. Task PlayMovieAsync(Movie movie);  
  4.   
  5. async void GetAndPlayMoviesAsync(string[] titles)  
  6. {  
  7.     foreach (var title in titles)  
  8.      {  
  9.          var movie = await GetMovieAsync(title);  
  10.           
  11.          await PlayMovieAsync(movie);  
  12.      }  
  13. }  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM