天天看點

C# ?和??使用講解

原文: C# ?和??使用講解

場景1:使用?定義可空類型

衆所周知,C#中的值類型是不可以為null的,如果必須為null,則需要将變量定義為可空類型,如下所示:

int? age = null;      

場景2:使用?檢查null值

一般我們寫代碼時,為了避免代碼出現空異常System.NullReferenceException,都會寫很多的判斷語句

Address address = null;
if (address != null)
{
   Console.WriteLine(address.PostCode);
}

Console.ReadLine();      

在C#的新文法中,我們可以通過?來檢查null值,這樣可以減少很多不必要的判斷

Address address = null;
var postCode = address?.PostCode;
Console.WriteLine(postCode);

Console.ReadLine();      

場景3:使用??設定預設值

在寫代碼過程中,經常會碰到當變量為null值設定預設值的情況,原來的寫法可能是這樣的:

int? age = null;
if (!age.HasValue)
{
   age = 18;
}

Console.WriteLine(age); // 輸出18

Console.ReadLine();      

在C#的新文法中,可以通過??來設定預設值,如果變量值為null,取??右邊的值,如果不為null,取變量的值

int? age = null;

Console.WriteLine(age ?? 18); // 輸出18

age = 20;

Console.WriteLine(age ?? 18); // 輸出20

Console.ReadLine();      

繼續閱讀