using System;
class MyClass {
private int FNum;
public int Num { get { return FNum; } }
// 無參數建構函式(預設值)
public MyClass() { this.FNum = 2009; }
// 單一參數建構函式
public MyClass(int x) { this.FNum = x; }
// params 可變參數建構函式
public MyClass(params int[] arr) {
foreach (int i in arr) this.FNum += i;
}
// 解構函式(Finalizer)
~MyClass() {
// 由 GC 自動呼叫,釋放非託管資源
}
}
class Program {
static void Main() {
MyClass obj1 = new MyClass(); // 2009
MyClass obj2 = new MyClass(100); // 100
MyClass obj3 = new MyClass(1, 2, 3); // 6
Console.WriteLine($"{obj1.Num}, {obj2.Num}, {obj3.Num}");
Console.ReadKey();
}
}
params 陣列this 關鍵字在建構函式中的用法this.FNum:明確指定實例欄位,避免與參數同名衝突this(...):建構函式鏈結,避免重複初始化邏輯public MyClass(int x, string s) : this(x) { /* 額外初始化 */ }
base 關鍵字呼叫基底類別建構函式class Child : Parent {
public Child(int x) : base(x) { } // 必須在初始化清單中呼叫
}
~ClassName()IDisposable 實作 Dispose Pattern 為最佳實踐this 鏈結的目標建構函式base(...) 指定或預設無參數)private int x = 10;)理解此順序對於診斷初始化例外、設計不可變物件至關重要。