c#中?的六種用途
在C#中,? 是一個(gè)多用途的符號(hào),具有多種不同的用途,具體取決于上下文。以下是一些常見的用法:
1、可空類型(Nullable Types)
? 可以用于將值類型(如 int、bool 等)變?yōu)榭煽疹愋?。例如,int? 表示一個(gè)可以為 null 的整數(shù)。
int? nullableInt = null; nullableInt = 5;
2、空條件運(yùn)算符(Null-conditional Operator)
?. 用于在訪問對(duì)象的成員(如屬性或方法)時(shí),先檢查對(duì)象是否為 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)的一部分,用于簡(jiǎn)單的條件判斷。
int a = 10, b = 20; int max = (a > b) ? a : b; // max 將為 20
? 在C#中主要用于處理可空性和空值檢查,幫助開發(fā)者編寫更健壯和安全的代碼。
到此這篇關(guān)于c#中?的六種用途的文章就介紹到這了,更多相關(guān)c# ?內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
c# 通過內(nèi)存映射實(shí)現(xiàn)文件共享內(nèi)存的示例代碼
這篇文章主要介紹了c# 通過內(nèi)存映射實(shí)現(xiàn)文件共享內(nèi)存的示例代碼,幫助大家更好的理解和學(xué)習(xí)使用c#,感興趣的朋友可以了解下2021-04-04
C#使用控制臺(tái)列出當(dāng)前所有可用的打印機(jī)列表
這篇文章主要介紹了C#使用控制臺(tái)列出當(dāng)前所有可用的打印機(jī)列表,涉及C#操作計(jì)算機(jī)硬件的相關(guān)使用技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-04-04
Qt讀取本地系統(tǒng)時(shí)間的幾種方式小結(jié)
這篇文章主要介紹了Qt讀取本地系統(tǒng)時(shí)間的幾種方式小結(jié),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2024-03-03

