C#中的問號(?號)用法小結。本站提示廣大學習愛好者:(C#中的問號(?號)用法小結)文章只能為提供參考,不一定能成為您想要的結果。以下是C#中的問號(?號)用法小結正文
1. 可空類型潤飾符(?):
援用類型可使用空援用表現一個不存在的值,而值類型平日不克不及表現為空。
例如:
string str=null;是准確的。
int i=null;編譯器將報錯。
為了使值類型也可為空,可空類型湧現了,可空類型應用可空類型潤飾符?來表現,表示情勢為T?。
例:int?表現是可空的整形,DateTime?表現為可空的時光。
T?實際上是System.Nullable<T>(泛型構造)的縮寫情勢,也就意味著當你用到T?時編譯器在編譯時會把T?編譯成System.Nullable<T>的情勢,
例如:int?,編譯後就是System.Nullable<int>的情勢。
2. 三元(運算符)表達式(?:):
語法為:前提表達式?表達式1:表達式2;
該操作起首求出前提表達式的值(bool類型),為true時挪用表達式1,為flase時挪用表達式2。
其邏輯為:"假如為真履行第一個,不然履行第二個。"
例:
test ? expression1 : expression2
test 任何 Boolean 表達式。
expression1 test 為 true 時前往的表達式。能夠是逗點表達式。
expression2 test 為 false 時前往的表達式。能夠是逗點表達式。
例如:
string prm1="4"; string prm2="5";
string prm3 = prm1==prm2?"yes":"no" // 此時prm3值為"no".
3. 空歸並運算符(??):
空歸並運算符 (null coalescing operator) ??
用於界說可空類型和援用類型的默許值。假如此運算符的左操作數不為 null,則此運算符將前往左操作數;不然前往右操作數。
例:a??b 假如 a 為非空,則 a ?? b 的成果為 a;不然成果為 b 。
空歸並運算符為右聯合運算符,即操作時從右向左停止組合的。
例:“a??b??c”的情勢按“a??(b??c)”盤算。