[C#基礎知識系列]專題十:全面解析可空類型[轉]

來源:互聯網
上載者:User

標籤:

原文連結

主要內容:

1:空合併作業符(?? 操作符)

  ??操作符也就是"空合併作業符",它代表的意思是兩個運算元,如果左邊的數不為null時,就返回左邊的數,如果左邊的數為null,就返回右邊的數,這個操作符可以用於可空類型,也可以用於參考型別,但是不能用於實值型別(之所以不能應用實值型別(這裡除了可空類型),因為??運算子要對左邊的數與null進行比較,然而實值型別,不能與null類型比較,所以就不支援??運算子),下面用一個例子來掩飾下??運算子的使用(??這個運算子可以方便我們設定預設值,可以避免在代碼中寫if, else語句,簡單代碼數量,從而有利於閱讀。)

 

2

可空類型也是實值型別,只是它是包含null的一個實值型別。我們可以像下面這樣表示可空類型(相信大家都不陌生):

 int? nullable = null;

  上面代碼 int? 就是可空的int類型(有人可能會這樣的疑問的, 如果在C#1中我硬要讓一個實值型別為一個可空類型怎麼辦到呢?當然這個在C#1之前也是有可以辦到的,只是會相當麻煩,對於這個如果有興趣的朋友可以去刨下根),然而其實 "?"這個修飾符只是C#提供的一個文法糖(所謂文法糖,就是C#提供的一種方便的形式,其實肯定沒有int? 這個類型,這個int?編譯器認為的就是Nullable<int>類型,即可空類型),其實真真C# 2.0提供的可空類型是——Nullable<T>(這個T就是上專題介紹的泛型參數,其中T只能為實值型別,因為從可空類型的定義為:public struct Nullable<T> where T :struct)和Nullable。

 

[C#基礎知識系列]專題十:全面解析可空類型[轉]

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.