在 C# 中,null
是一個特殊的值,表示變量沒有引用任何對象。這在處理可能為空的值時非常有用,例如數據庫查詢結果或用戶輸入。為了處理空值,C# 提供了 null
關鍵字和 System.Nullable<T>
類型。
null
關鍵字:當變量可能為空時,可以使用 null
關鍵字來表示。例如:
string? myString = null;
int? myInt = null;
這里,myString
和 myInt
都是可空的類型,它們可以分別存儲 null
值。要檢查一個可空值是否為空,可以使用 ??
操作符(空合并操作符):
string result = myString ?? "Default String";
int? result2 = myInt ?? 0;
System.Nullable<T>
類型:System.Nullable<T>
是一個泛型類,用于表示可空的值。它的語法如下:
public struct Nullable<T> where T : struct, IConvertible
Nullable<T>
類型有一個名為 HasValue
的布爾屬性,用于檢查值是否為空。還有一個名為 Value
的屬性,用于獲取或設置非空值。例如:
int? myInt = 5;
if (myInt.HasValue)
{
Console.WriteLine(myInt.Value); // 輸出 5
}
else
{
Console.WriteLine("myInt is null");
}
要檢查一個可空值是否為空,可以使用 ??
操作符(空合并操作符):
int result = myInt ?? 0;
null-conditional
運算符(C# 6 及更高版本):從 C# 6 開始,可以使用 ?.
運算符來簡化可空類型的空值檢查。例如:
string result = myString?.Substring(0, 1);
如果 myString
為空,result
將被賦值為 null
,而不是引發異常。