您的位置:首页 > 编程语言 > C#

c# 衍生类和基类的构造顺序

2017-01-02 14:29 225 查看
public class MyDeriveClass
:MyBaseClass
{
public MyDeriveClass()
:base()
{

}

int derive_int = 1;
}
public class MyBaseClass
{
public MyBaseClass()
{

}

int base_int = 1;
}


var cls = new MyDeriveClass();

调用顺序如下:

derive_int = 1;

base_int = 1;

MyBaseClass();

MyDeriveClass();

考虑MyBaseClass()中有一个属性A为abstract

在MyBaseClass()中可以直接操作这个属性A,

只需要(也应该如此设计)DeriveClass做好override

你需要注意的问题是:

在Field的声明处初始化 和 在构造函数中初始化 的顺序是不一样的。

在Field的声明处初始化 总是比 构造函数要早执行,且早于基类的Field的声明处初始化和基类的构造函数。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c#