溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

C# 5.0五大新特性

發(fā)布時間:2020-04-01 11:45:43 來源:網(wǎng)絡(luò) 閱讀:333 作者:寧金峰 欄目:編程語言

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

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

[csharp] view plain copy
comboBox1.Text :=: textBox1.Text; //將文本框的內(nèi)容綁定到下拉框。
第二:帶參數(shù)的泛型構(gòu)造函數(shù):

這個的加入給一些設(shè)計增加了強(qiáng)大功能,泛型早在C#2.0加入后就有著強(qiáng)大的應(yīng)用,一般稍微設(shè)計比較好的框架,都會用到泛型,C#5.0加入帶參數(shù)泛型構(gòu)造函數(shù),則在原有基礎(chǔ)上對C#泛型完善了很多。:)

[csharp] view plain copy
public class T MyClass : T: class, new()
public class T MyClass : T:class, new(int)
第三:支持null類型運算:

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

注意對于Nullable Types,在C#2.0就加入進(jìn)來了,但是不支持計算,比如:

int? x = null;

int? y = x + 40;

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

[csharp] view plain copy
int x? = null;
int y? = x + 40;
Myobject obj = null;
Myotherobj obj2 = obj.MyProperty ??? new Myotherobj();
第四:case支持表達(dá)式:

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

[csharp] view plain copy
switch(myobj){
llorEmpty(myotherobj):
//邏輯代碼
case myotherobj.Trim().Lower:
//邏輯代碼
}
第五:擴(kuò)展屬性。

我們在C#3.0里有擴(kuò)展方法,那么在C#5.0里將會加入擴(kuò)展屬性的感念,對照擴(kuò)展方法,不難理解擴(kuò)展屬性的概念了。以下為擴(kuò)展屬性的定義舉例:

[Associate(string)]

public static int Zivsoft_ExtensionProperty { get;set;}

C#5.0 遠(yuǎn)遠(yuǎn)不只是上面描述的5點新功能,它如同C#4.0加入dynamic概念一樣,會加入異步處理概念,這個不是幾行代碼就能表達(dá),而是將在設(shè)計,架構(gòu)上,又會掀起一次飛躍……

為了大家搶先看,就給一段C#5.0一段簡單的異步操作的代碼例子,注意(C#5.0兩個新加的關(guān)鍵字async, await):

[csharp] view plain copy
Task<Movie> 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);  
 }  

}

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI