c#中?的六種用途
在C#中,? 是一個(gè)多用途的符號,具有多種不同的用途,具體取決于上下文。以下是一些常見的用法:
1、可空類型(Nullable Types)
? 可以用于將值類型(如 int、bool 等)變?yōu)榭煽疹愋?。例如,int? 表示一個(gè)可以為 null 的整數(shù)。
int? nullableInt = null; nullableInt = 5;
2、空條件運(yùn)算符(Null-conditional Operator)
?. 用于在訪問對象的成員(如屬性或方法)時(shí),先檢查對象是否為 null,以避免 NullReferenceException。
string str = null; int? length = str?.Length; // length 將為 null,因?yàn)?str 是 null
3、空合并運(yùn)算符(Null-coalescing Operator)
?? 用于在左側(cè)表達(dá)式為 null 時(shí),返回右側(cè)的默認(rèn)值。
int? nullableInt = null; int value = nullableInt ?? 10; // value 將為 10,因?yàn)?nullableInt 是 null
4、事件處理程序中的可選參數(shù)(不直接用 ? 表示,但相關(guān))
在事件處理程序中,EventArgs 參數(shù)通常可以通過定義一個(gè)沒有參數(shù)的處理器來忽略,這與 ? 無關(guān),但事件訂閱時(shí)可以省略參數(shù)。
public event EventHandler MyEvent; void OnMyEvent() { MyEvent?.Invoke(this, EventArgs.Empty); // 使用空條件運(yùn)算符安全調(diào)用事件 }
5、模式匹配中的 is 表達(dá)式(C# 7.0 及以上)
在類型模式匹配中,is 關(guān)鍵字可以與 ? 結(jié)合,用于類型檢查和轉(zhuǎn)換,不過這里 ? 是類型模式的一部分,用于表示可空類型。
object obj = 5; if (obj is int? nullableInt && nullableInt.HasValue) { Console.WriteLine($"Value: {nullableInt.Value}"); }
6、三元運(yùn)算符(Ternary Operator)
雖然三元運(yùn)算符本身不使用 ? 作為“用途”,但它是 ? : 結(jié)構(gòu)的一部分,用于簡單的條件判斷。
int a = 10, b = 20; int max = (a > b) ? a : b; // max 將為 20
? 在C#中主要用于處理可空性和空值檢查,幫助開發(fā)者編寫更健壯和安全的代碼。
到此這篇關(guān)于c#中?的六種用途的文章就介紹到這了,更多相關(guān)c# ?內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
淺析.NET中AsyncLocal的實(shí)現(xiàn)原理
這篇文章主要為大家詳細(xì)介紹了.NET中AsyncLocal的具體實(shí)現(xiàn)原理,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,如果有講得不清晰或不準(zhǔn)確的地方,還望指出2023-08-08C#采用mouse_event函數(shù)實(shí)現(xiàn)模擬鼠標(biāo)功能
這篇文章主要介紹了C#模擬鼠標(biāo)點(diǎn)擊小功能,通過代碼向大家做分析,需要的朋友可以參考下2015-07-07C#中FormsAuthentication用法實(shí)例
這篇文章主要介紹了C#中FormsAuthentication用法實(shí)例,本文直接給出實(shí)現(xiàn)代碼,需要的朋友可以參考下2015-02-02