C# 5.0將帶來的五大全新功能
在本篇文章中,作者用C# 5.0與之前的版本相做比較,總結出C# 5.0幾個的全新功能,供大家參考。
第一:綁定運算符,:=:
這個只是簡化了數據綁定,跟ASP.NET MVC3不斷改進一樣,其實不是什麽亮點改進。
第二:帶參數的泛型構造函數:
這個的加入給一些設計增加了強大功能,泛型早在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類型的支持,寫代碼還是方便不少。
註意對於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);
【免責聲明】本文僅代表作者本人觀點,與和訊網無關。和訊網站對文中陳述、觀點判斷保持中立,不對所包含內容的準確性、可靠性或完整性提供任何明示或暗示的保證。請讀者僅作參考,並請自行承擔全部責任。
- 看看大家都說了啥
-
您好,歡迎您發表評論! (言論僅代表會員個人觀點,不代表和訊網觀點)
|
相關推薦
|






















