在C#中,為了避免空引用(NullReferenceException),你可以采取以下幾種方法:
使用空合并運算符(Null Coalescing Operator):
當你可以預期一個變量可能為空時,可以使用空合并運算符(??
)來提供一個默認值。這樣可以確保變量在使用之前已經被賦予了一個非空的值。
例如:
string name = user?.Name ?? "Unknown";
在這個例子中,如果user
為null,那么name
將被賦值為"Unknown"。
使用空條件運算符(Null Conditional Operator):
當你需要調用一個方法或訪問一個屬性,但你可以預期該方法或屬性可能為空時,可以使用空條件運算符(?.
)。這樣可以避免在空引用上調用方法或訪問屬性時拋出異常。
例如:
string name = user?.Name;
在這個例子中,如果user
為null,那么name
將被賦值為null,而不是拋出異常。
使用非空類型(Non-nullable Types):
在C# 8.0及更高版本中,你可以使用非空類型(non-nullable
)來明確表示一個變量不能為空。這可以通過在類型后面加上!
符號來實現。
例如:
public string Name { get; set; }
在這個例子中,Name
屬性被聲明為非空類型,這意味著它不能為空。如果嘗試將其設置為null,編譯器將報錯。
使用空值檢查(Null Check):
在使用一個變量之前,你可以檢查它是否為空。如果為空,你可以采取適當的措施,例如拋出一個異常、返回一個默認值或者使用空合并運算符(??
)提供一個默認值。
例如:
if (user != null)
{
string name = user.Name;
}
else
{
string name = "Unknown";
}
在這個例子中,我們首先檢查user
是否為空。如果不為空,我們訪問user.Name
。否則,我們將name
賦值為"Unknown"。