请问C#构造函数执行顺序

C#构造函数执行顺序

在C#中,当你做的时候

Class(Type param1, Type param2) : base(param1)

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


开满天机
浏览 316回答 3
3回答

狐的传说

命令是:成员变量被初始化为层次结构中所有类的默认值。然后从最派生的类开始:变量初始化器是针对派生最多的类型执行的。构造函数链计算出将调用哪个基类构造函数。基类被初始化(递归所有这些:)该类中链中的构造函数体被执行(请注意,如果它们被链接在一起,则可以有多个构造函数体)。Foo() : this(...)等注意,在Java中,基类是初始化的以前运行变量初始化器。如果您曾经移植过任何代码,这是一个需要了解的重要区别:)我有一个包含更多详细信息的页面如果你感兴趣的话。

哆啦的时光机

您是在问何时执行构造函数调用的“基本”位吗?如果是这样的话,如果类派生自具有此构造函数的另一个类,则将“连锁”一个对构造函数基的调用:  public class CollisionBase     {         public CollisionBase(Body body, GameObject entity)         {         }     }     public class TerrainCollision : CollisionBase     {         public TerrainCollision(Body body, GameObject entity)             : base(body, entity)         {         }     }在这个例子中,TerrainCollision源自CollisionBase..通过以这种方式链接构造函数,可以确保在基类上使用提供的参数调用指定的构造函数,而不是默认构造函数(如果基类上有构造函数的话)。
打开App,查看更多内容
随时随地看视频慕课网APP