C#中 ? 和 ??操作符的意思

 

int? x = null;
int y = x ?? -1;

默認情況下,int類型的變量是值類型,不能賦值null.以下是解釋

爲了實現Nullable數據類型轉換成non-Nullable型數據,就有了一個這樣的操作符”??(兩個問號)“,雙問號操作符意思是取所賦值??左邊的,如果左邊爲null,取所賦值??右邊的,比如int y = x ?? -1 如果x爲空,那麼y的值爲-1.

於是這時候就可以把最上面第二段代碼改成:

string strParam= Request.Params["param"]?? "";

另外還有”?(單問號)“修飾符,是System.Nullable<T>的縮寫形式,比如int?代表是可空的整形,例如:int? a = 1 或者 int? b=null。Nullable類型具有一個HasValue的bool類型只讀屬性,當Nullable類型實例的該屬性爲true時,則表示該實例是非空實例,包含一個已知值Value,HasValue爲false時,訪問Value屬性將導致System.InvalidOperationException。

發佈了88 篇原創文章 · 獲贊 16 · 訪問量 30萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章