在C#中,構造函數的調用順序遵循以下規則:
基類的靜態構造函數(如果有):首先執行基類的靜態構造函數,這是在程序運行期間只執行一次的構造函數。
派生類的靜態構造函數(如果有):接著執行派生類的靜態構造函數,這也是在程序運行期間只執行一次的構造函數。
基類的實例構造函數:當創建派生類的實例時,首先執行基類的實例構造函數。
派生類的實例構造函數:最后執行派生類的實例構造函數。
需要注意的是,構造函數的調用順序是從基類到派生類,每個類只會調用其自身的構造函數。同時,如果沒有顯式地定義構造函數,編譯器會自動為每個類生成一個默認的無參數構造函數。