首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C#构造函数的执行顺序

C#构造函数的执行顺序
EN

Stack Overflow用户
提问于 2009-12-11 01:40:47
回答 8查看 64.1K关注 0票数 150

在C#中,当你这样做

代码语言:javascript
复制
Class(Type param1, Type param2) : base(param1) 

是先执行类的构造函数,然后调用超类构造函数,还是先调用基构造函数?

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2009-12-11 01:53:30

顺序是:

对于层次结构中的所有类,

  • 成员变量均初始化为默认值

然后从派生最多的类开始:

为派生最多的type

  • Constructor链接执行
  • 变量初始化器计算出哪个基类构造函数将被调用
  • 基类被初始化(递归所有这一切:)
  • 执行此类中链中的构造函数主体(请注意,如果它们与Foo() : this(...) etc

链接,则可以有多个

请注意,在Java中,基类是在运行变量初始化器之前初始化的。如果您曾经移植过任何代码,这是一个需要了解的重要区别:)

如果你感兴趣的话,我有一个page with more details

票数 194
EN

Stack Overflow用户

发布于 2009-12-11 01:43:26

它将首先调用基构造器。还要记住,如果你不把:base(param1)放在你的构造函数后面,基类的空构造函数就会被调用。

票数 61
EN

Stack Overflow用户

发布于 2009-12-11 01:43:56

首先调用基类的构造函数。

票数 17
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1882692

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档