C 5 0五大新特性

2022-02-12 07:44:00 字數 1663 閱讀 5462

第一:繫結運算子,:=:

這個只是簡化了資料繫結,跟asp.net mvc3不斷改進一樣,其實不是什麼亮點改進。

[csharp]view plain

copy

combobox1.text :=: textbox1.text; //將文字框的內容繫結到下拉框。  

第二:帶引數的泛型建構函式:

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

[csharp]view plain

copy

public class t myclass : t: class, new()  

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

int x? = null;  

int y? = x + 40;  

myobject obj = null;  

myotherobj obj2 = obj.myproperty ??? new myotherobj();  

第四:case支援表示式:

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

[csharp]view plain

copy

switch(myobj)  

第五:擴充套件屬性。

我們在c#3.0裡有擴充套件方法,那麼在c#5.0裡將會加入擴充套件屬性的感念,對照擴充套件方法,不難理解擴充套件屬性的概念了。以下為擴充套件屬性的定義舉例:

[associate(string)]

public static int zivsoft_extensionproperty

c#5.0 遠遠不只是上面描述的5點新功能,它如同c#4.0加入dynamic概念一樣,會加入非同步處理概念,這個不是幾行**就能表達,而是將在設計,架構上,又會掀起一次飛躍……

為了大家搶先看,就給一段c#5.0一段簡單的非同步操作的**例子,注意(c#5.0兩個新加的關鍵字async, await):

[csharp]view plain

copy

taskgetmovieasync(string title);  

task playmovieasync(movie movie);  

async void getandplaymoviesasync(string titles)  

}  

C 5 0五大新特性

第一 繫結運算子,這個只是簡化了資料繫結,跟asp.net mvc3不斷改進一樣,其實不是什麼亮點改進。csharp view plain copy combobox1.text textbox1.text 將文字框的內容繫結到下拉框。第二 帶引數的泛型建構函式 這個的加入給一些設計增加了強大功能,...

PHP7五大新特性

如果你使用的是基於 composer 和 psr 4 的框架,這種寫法是否能成功的載入類檔案?其實是可以的,composer 註冊的自動載入方法是在類被呼叫的時候根據類的命名空間去查詢位置,這種寫法對其沒有影響。1.運算子 null 合併運算子 把這個放在第乙個說是因為我覺得它很有用。用法 a ge...

PHP 7 的五大新特性

新特性 1.運算子 null 合併運算子 把這個放在第乙個說是因為我覺得它很有用。用法 a get a 1 它相當於 a isset get a get a 1 我們知道三元運算子是可以這樣用的 a?1但是 這是建立 在 a 已經定義了的前提上。新增的 運算子可以簡化判斷。函式返回值型別宣告 官方文...