首页 >后端开发 >C++ >C# 继承中的构造函数执行顺序是什么?

C# 继承中的构造函数执行顺序是什么?

DDD
DDD原创
2025-01-22 23:47:14264浏览

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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn