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# 語言規格的下列幾節: