C#构造函数执行顺序
在C#中,当您执行
Class(Type param1, Type param2) : base(param1)
是先执行该类的构造函数,然后再调用超类构造函数,还是先调用该基本构造函数?
回答:
顺序是:
- 成员变量被初始化为层次结构中所有类的默认值
然后从最派生的类开始:
- 变量初始化器针对派生最多的类型执行
- 构造函数链可以确定将调用哪个基类构造函数
- 基类被初始化(递归所有这些:)
- 此类中链中的构造函数体被执行(请注意,如果将它们与
Foo() : this(...)
等链在一起,则可以有多个
请注意,在Java中,基类 在 运行变量初始化程序 之前 被初始化。如果您移植了任何代码,这是需要了解的重要区别:)
如果您有兴趣,我会在页面上提供更多详细信息。
以上是 C#构造函数执行顺序 的全部内容, 来源链接: utcz.com/qa/412040.html