C# 運算子 ?、??、?: 、?. 、 各種問號的用法和說明

來源:互聯網
上載者:User

標籤:ring   否則   time   運算   問號   預設值   泛型   als   運算子   

1. 可空類型修飾符(?):
參考型別可以使用Null 參考表示一個不存在的值,而實值型別通常不能表示為空白。
例如:string str=null; 是正確的,int i=null; 編譯器就會報錯。
為了使實值型別也可為空白,就可以使用可空類型,即用可空類型修飾符"?"來表示,表現形式為"T?"
例如:int? 表示可空的整形,DateTime? 表示可為空白的時間。
T? 其實是System.Nullable(泛型結構)的縮寫形式,也就意味著當你用到T?時編譯器編譯 時會把T?編譯成System.Nullable的形式。
例如:int?,編譯後便是System.Nullable的形式。


2. 三元(運算子)運算式(?:) :
例如:x?y:z 表示如果運算式x為true,則返回y;如果x為false,則返回z,是省略if{}else{}的簡單形式。


3. 空合并運算子(??) :
用於定義可空類型和參考型別的預設值。如果此運算子的左運算元不為null,則此運算子將返回左運算元,否則返回右運算元。
例如:a??b 當a為null時則返回b,a不為null時則返回a本身。
空合并運算子為右結合運算子,即操作時從右向左進行組合的。如,“a??b??c”的形式按“a??(b??c)”計算。


4、?.
不為null時執行後面的操作

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.