C# base() 构造函数顺序

标签 c# constructor base

<分区>

Possible Duplicate:
C# constructor execution order

class Foo
{
    public int abc;
    Foo()
    {
       abc = 3;
    }

}

class Bar : Foo
{
    Bar() : base()
    {
       abc = 2;
    }
}

在上面的例子中,当Bar对象被创建时,BarObject.abc的值是多少?是先调用基础构造函数,还是运行 Bar(),/然后/调用 base() 构造函数?

最佳答案

它将是 2。构造函数按从基类最先到继承类最后的顺序运行。

请注意,初始化器(静态变量和实例变量)以相反的方向运行。

完整序列在这里:http://www.csharp411.com/c-object-initialization/

关于C# base() 构造函数顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2021373/

相关文章:

java - Java 中的构造函数覆盖

c# - 仅知道部分文件名的情况下在 SFTP 上获取远程文件

c++ - 析构函数和构造函数调用,示例对吗?

c# - DownloadProgressChangedEventHandler 多久被调用一次

java - 通过 setter 或构造函数分配多个字段

c# - 基类与实用类

r - 将值匹配到 R 中另一个列表中最近的较大值

c# - 如何使用反射在派生类的属性之前获取基类的属性

c# - 最小起订量验证表达式

c# - 返回前验证 null 属性