C#中的問號(?號)用法小結
1. 可空類型修飾符(?):
引用類型可以使用空引用表示一個不存在的值,而值類型通常不能表示為空。
例如:
string str=null;是正確的。
int i=null;編譯器將報錯。
為了使值類型也可為空,可空類型出現(xiàn)了,可空類型使用可空類型修飾符?來表示,表現(xiàn)形式為T?。
例:int?表示是可空的整形,DateTime?表示為可空的時間。
T?其實是System.Nullable<T>(泛型結構)的縮寫形式,也就意味著當你用到T?時編譯器在編譯時會把T?編譯成System.Nullable<T>的形式,
例如:int?,編譯后便是System.Nullable<int>的形式。
2. 三元(運算符)表達式(?:):
語法為:條件表達式?表達式1:表達式2;
該操作首先求出條件表達式的值(bool類型),為true時調用表達式1,為flase時調用表達式2。
其邏輯為:"如果為真執(zhí)行第一個,否則執(zhí)行第二個。"
例:
test ? expression1 : expression2
test 任何 Boolean 表達式。
expression1 test 為 true 時返回的表達式??赡苁嵌狐c表達式。
expression2 test 為 false 時返回的表達式??赡苁嵌狐c表達式。
例如:
string prm1="4"; string prm2="5";
string prm3 = prm1==prm2?"yes":"no" // 此時prm3值為"no".
3. 空合并運算符(??):
空合并運算符 (null coalescing operator) ??
用于定義可空類型和引用類型的默認值。如果此運算符的左操作數(shù)不為 null,則此運算符將返回左操作數(shù);否則返回右操作數(shù)。
例:a??b 如果 a 為非空,則 a ?? b 的結果為 a;否則結果為 b 。
空合并運算符為右結合運算符,即操作時從右向左進行組合的。
例:“a??b??c”的形式按“a??(b??c)”計算。
相關文章
C#將圖片存放到SQL SERVER數(shù)據(jù)庫中的方法
這篇文章主要介紹了C#將圖片存放到SQL SERVER數(shù)據(jù)庫中的方法,以實例形式較為詳細的分析了C#保存圖片到SQL Server數(shù)據(jù)庫的具體步驟與相關技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-09-09Unity ScrollRect實現(xiàn)軌跡滑動效果
這篇文章主要為大家詳細介紹了Unity ScrollRect實現(xiàn)軌跡滑動效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-09-09C# Entity Framework中的IQueryable和IQueryProvider詳解
這篇文章主要介紹了C# Entity Framework中的IQueryable和IQueryProvider詳解,本文使用實例分析這兩個接口的內部實現(xiàn),需要的朋友可以參考下2015-01-01