C# 型の既定値 (C# リファレンス)

次の表では、C# の型の既定値を示します。

種類 既定値
任意の参照型 null
任意の組み込み整数数値型 0 (ゼロ)
任意の組み込み浮動小数点数値型 0 (ゼロ)
bool false
char '\0' (U+0000)
enum (E)0 によって生成される値。E は列挙型識別子です。
struct すべての値型フィールドが既定値に設定され、すべての参照型フィールドが null に設定された値。
任意の null 許容値型 HasValue プロパティが false で、Value プロパティが未定義のインスタンス。 その規定値は、null 許容値型の "null" 値とも呼ばれます。

既定値式

次の例に示すように、型の既定値を生成するには default 演算子を使います。

int a = default(int);

C# 7.1 以降、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# 言語仕様」の次のセクションを参照してください。

関連項目