C#中的問號(hào)(?號(hào))用法小結(jié)
1. 可空類型修飾符(?):
引用類型可以使用空引用表示一個(gè)不存在的值,而值類型通常不能表示為空。
例如:
string str=null;是正確的。
int i=null;編譯器將報(bào)錯(cuò)。
為了使值類型也可為空,可空類型出現(xiàn)了,可空類型使用可空類型修飾符?來表示,表現(xiàn)形式為T?。
例:int?表示是可空的整形,DateTime?表示為可空的時(shí)間。
T?其實(shí)是System.Nullable<T>(泛型結(jié)構(gòu))的縮寫形式,也就意味著當(dāng)你用到T?時(shí)編譯器在編譯時(shí)會(huì)把T?編譯成System.Nullable<T>的形式,
例如:int?,編譯后便是System.Nullable<int>的形式。
2. 三元(運(yùn)算符)表達(dá)式(?:):
語法為:條件表達(dá)式?表達(dá)式1:表達(dá)式2;
該操作首先求出條件表達(dá)式的值(bool類型),為true時(shí)調(diào)用表達(dá)式1,為flase時(shí)調(diào)用表達(dá)式2。
其邏輯為:"如果為真執(zhí)行第一個(gè),否則執(zhí)行第二個(gè)。"
例:
test ? expression1 : expression2
test 任何 Boolean 表達(dá)式。
expression1 test 為 true 時(shí)返回的表達(dá)式??赡苁嵌狐c(diǎn)表達(dá)式。
expression2 test 為 false 時(shí)返回的表達(dá)式??赡苁嵌狐c(diǎn)表達(dá)式。
例如:
string prm1="4"; string prm2="5";
string prm3 = prm1==prm2?"yes":"no" // 此時(shí)prm3值為"no".
3. 空合并運(yùn)算符(??):
空合并運(yùn)算符 (null coalescing operator) ??
用于定義可空類型和引用類型的默認(rèn)值。如果此運(yùn)算符的左操作數(shù)不為 null,則此運(yùn)算符將返回左操作數(shù);否則返回右操作數(shù)。
例:a??b 如果 a 為非空,則 a ?? b 的結(jié)果為 a;否則結(jié)果為 b 。
空合并運(yùn)算符為右結(jié)合運(yùn)算符,即操作時(shí)從右向左進(jìn)行組合的。
例:“a??b??c”的形式按“a??(b??c)”計(jì)算。
相關(guān)文章
C#將圖片存放到SQL SERVER數(shù)據(jù)庫(kù)中的方法
這篇文章主要介紹了C#將圖片存放到SQL SERVER數(shù)據(jù)庫(kù)中的方法,以實(shí)例形式較為詳細(xì)的分析了C#保存圖片到SQL Server數(shù)據(jù)庫(kù)的具體步驟與相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-09-09Unity ScrollRect實(shí)現(xiàn)軌跡滑動(dòng)效果
這篇文章主要為大家詳細(xì)介紹了Unity ScrollRect實(shí)現(xiàn)軌跡滑動(dòng)效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-09-09C# Entity Framework中的IQueryable和IQueryProvider詳解
這篇文章主要介紹了C# Entity Framework中的IQueryable和IQueryProvider詳解,本文使用實(shí)例分析這兩個(gè)接口的內(nèi)部實(shí)現(xiàn),需要的朋友可以參考下2015-01-01c#模擬js escape方法的簡(jiǎn)單實(shí)例
這篇文章主要介紹了c#模擬js escape方法的簡(jiǎn)單實(shí)例,有需要的朋友可以參考一下2013-11-11詳解如何將.NET應(yīng)用轉(zhuǎn)換成Window服務(wù)
這篇文章主要為大家詳細(xì)介紹了如何將.NET8.0應(yīng)用程序轉(zhuǎn)換成Windows服務(wù),文中的示例代碼講解詳細(xì),有需要的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-01-01WinForm特效之桌面上的遮罩層實(shí)現(xiàn)方法
這篇文章主要介紹了WinForm特效之桌面上的遮罩層實(shí)現(xiàn)方法,是一個(gè)非常實(shí)用的技巧,需要的朋友可以參考下2014-09-09c#中SAPI使用總結(jié)——SpVoice的使用方法
最近使用C#重做了點(diǎn)名系統(tǒng)(要用到TTS,讓計(jì)算機(jī)點(diǎn)名)使用了SAPI,在這里總結(jié)一下SpVoice的使用方法。2011-10-10