首頁 > 後端開發 > C++ > C# 繼承中的建構子執行順序是什麼?

C# 繼承中的建構子執行順序是什麼?

DDD
發布: 2025-01-22 23:47:14
原創
257 人瀏覽過

What's the Constructor Execution Order in C# Inheritance?

C#建構子執行順序詳解

在C#中定義建構子時,一個關鍵問題是:目前類別的建構子是在呼叫基底類別建構子之前還是之後執行?

執行順序

執行順序遵循以下步驟:

  1. 繼承層次結構中所有類別的成員變數都初始化為預設值。
  2. 從最衍生類別開始:
    • 執行最派生類型的變數初始化器。
    • 建構函式鏈決定要呼叫的基底類別建構子。
    • 初始化基底類別(遞歸應用這些步驟)。
    • 依序執行此類繼承鏈中的建構子主體。
  3. 請注意,與Java不同,基底類別是在執行變數初始化器之後初始化的。

範例

考慮以下類別層次結構:

<code class="language-csharp">class Base
{
    public Base(int param1)
    {
        // 构造函数主体
    }
}

class Derived : Base
{
    public Derived(int param1, int param2) : base(param1)
    {
        // 构造函数主体
    }
}</code>
登入後複製

建立Derived實例時,執行順序如下:

  1. 為Base和Derived的成員變數指派預設值。
  2. 執行Derived的變數初始化器,設定其自身的成員變數。
  3. 使用指定的參數呼叫基底類別建構子(Base(int param1))。
  4. 執行Derived的建構子主體。

以上是C# 繼承中的建構子執行順序是什麼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板