若類別未定義任何建構函式,編譯器會自動產生無參數的預設建構函式,將所有欄位初始化為預設值(數值 0、參考 null、bool false)。
public class A {
public int Number;
public string Word;
}
public class Test {
static void Main() {
A a = new A(); // 呼叫預設建構函式
Console.WriteLine($"Number = {a.Number}, Word = {a.Word}");
}
}
// 輸出:Number = 0, Word =
new() 要求型別有公用無參數建構函式Activator.CreateInstance 預設呼叫無參數建構函式base(),會自動呼叫基類無參數建構函式若自訂建構函式導致無參數建構函式消失,請明確宣告 public A() { } 保留相容性。