C# (xxx)a 編譯為 castclass xxx。若轉換失敗拋 InvalidCastException。需確保物件確實為目標類型或其子類。
public 方法可在 private 類別中。// C# 代碼
public class bb : aa {
public bb() : this(20) { Console.WriteLine("in const bb"); }
public bb(int i) : base(i) { Console.WriteLine("in const bb" + i); }
}
IL 呼叫順序:
bb() → this(20) (呼叫 bb(int))bb(int) → base(i) (呼叫 aa(int))aa(int) → base() (呼叫 Object.ctor)輸出:in const aa20、in const bb20、in const bb。
base、this 在 IL 中不存在,編譯器直接發出對應建構函數的 call 指令。