C# 類型預設值 (C# 參考)

下列表格顯示 C# 型別的預設值:

類型 預設值
任何參考型別 null
任何內建整數數值型別 0 (zero)
任何內建浮點數值型別 0 (zero)
bool false
char '\0' (U+0000)
enum 這個值是由運算式 (E)0 所產生,其中 E 是列舉識別碼。
struct 這個值是藉由將所有實值型別欄位設定為其預設值,並將所有參考型別欄位設定為 null 所產生。
任何可為 Null 的值型別 HasValue 屬性是 false 且未定義 Value 屬性的執行個體。 該預設值也稱為可為 Null 實值型別的 null 值。

預設值運算式

使用 default 運算子來產生類型的預設值,如下列範例所示:

int a = default(int);

您可以使用 default 常值 以使用其類型的預設值來初始化變數:

int a = default;

實值型別的無參數建構函式

針對實值型別,「隱含」無參數建構函式也會產生型別的預設值,如下列範例所示:

var n = new System.Numerics.Complex();
Console.WriteLine(n);  // output: (0, 0)

在執行階段,如果 System.Type 執行個體代表實值型別,則您可以使用 Activator.CreateInstance(Type) 方法來叫用無參數建構函式,以取得型別的預設值。

注意

在 C# 10 和更新版本中,結構類型 (即實值型別) 可能會有明確無參數建構函式,而此建構函式可能會產生類型的非預設值。 因此,建議使用 default 運算子或 default 常值來產生類型的預設值。

C# 語言規格

如需詳細資訊,請參閱 C# 語言規格的下列幾節:

另請參閱