C#中關(guān)于可空類型的小知識(shí)
1) 在與1元或二元運(yùn)算符一起使用時(shí),如果其中一個(gè)操作數(shù)為null或兩個(gè)均null,則結(jié)果為null。
如:
int? a = null;
int? b = a+3;
則b為null
2) 比較可空類型時(shí),只要有一個(gè)操作數(shù)為null,結(jié)果就為false
如:
int? a = null;
int? b = 8;
(a>=b)將返回false
而正是因?yàn)閚ull的可能性,所以不能隨意比較一個(gè)可空類型和一個(gè)非可空類型。
3) 空接合運(yùn)算符
空接合運(yùn)算符”??”為處理可空類型和引用類型時(shí)表示Null值的可能性提供了一種快捷方式,或許我們不用總寫if(XX!=null)。有點(diǎn)類似三元運(yùn)算符”?:”,如果”??”前面一個(gè)數(shù)(第一個(gè)數(shù)必需為可空或引用類型)不是null,則表達(dá)式的值就為第一個(gè)操作數(shù)的值,如果第一個(gè)操作數(shù)為Null,表達(dá)式的值則為第二個(gè)表達(dá)式的值。
如:
int? a= null;
int defaut = 1010;
int b;
b=a??defaut;//此時(shí)b取defaut的值
a = 8;
b=a??defaut;//此時(shí)b取a的值
當(dāng)然,這里第二個(gè)數(shù)應(yīng)該是與第一個(gè)數(shù)類型相同或者能隱式轉(zhuǎn)化為第一個(gè)數(shù)的。
PS:無法創(chuàng)建基于引用類型的可空類型,因?yàn)橐妙愋鸵阎С?null 值。
相關(guān)文章
RSA密鑰--JAVA和C#的區(qū)別及聯(lián)系
這篇文章主要介紹了關(guān)于RSA密鑰事件JAVA和C#的區(qū)別及聯(lián)系,文章從RSA語(yǔ)法介紹開始展開詳細(xì)介紹了C#轉(zhuǎn)JAVA及JAVA轉(zhuǎn)C#,需要的小伙伴可以可以參考一下2021-10-10利用C#實(shí)現(xiàn)獲取當(dāng)前設(shè)備硬件信息
這篇文章主要為大家詳細(xì)介紹了如何利用C#實(shí)現(xiàn)獲取當(dāng)前設(shè)備硬件信息的功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起了解一下2023-03-03C#簡(jiǎn)單的通用基礎(chǔ)字典實(shí)現(xiàn)方法
這篇文章主要介紹了C#簡(jiǎn)單的通用基礎(chǔ)字典實(shí)現(xiàn)方法,包含了字典的索引、記錄、回調(diào)與查詢等技巧,需要的朋友可以參考下2014-12-12C#優(yōu)雅的實(shí)現(xiàn)INotifyPropertyChanged接口
這篇文章介紹了C#實(shí)現(xiàn)INotifyPropertyChanged接口的方法,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-08-08Winform自定義控件在界面拖動(dòng)、滾動(dòng)鼠標(biāo)時(shí)閃爍的解決方法
這篇文章介紹了Winform自定義控件在界面拖動(dòng)、滾動(dòng)鼠標(biāo)時(shí)閃爍的解決方法,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-12-12