c# 衍生类和基类的构造顺序
2024-09-02 00:32:06
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的声明处初始化和基类的构造函数。
最新文章
- Netty 对通讯协议结构设计的启发和总结
- PHP标签的格式
- Microsoft Expression Blend 4制作简单的按钮
- [转载]js javascript 判断字符串是否包含某字符串,String对象中查找子字符,indexOf
- Linux下安装 TestLink常见问题解决方法
- java中的数据库事务处理
- SparkContext自定义扩展textFiles,支持从多个目录中输入文本文件
- (Problem 42)Coded triangle numbers
- UVA 10391 Compound Words
- js获取鼠标点击的对象,点击另一个按钮删除该对象
- python、java和php的百度指数对比
- 从0开始的Python学习002python的数据类型
- JavaScript实现预览本地上传图片
- 【译】第42节---EF6-DbSet.AddRange &; DbSet.RemoveRange
- SQL Server 2012 自动增长列,值跳跃问题(自增增加1000)
- 正则表达式取querystring
- python学习之RabbitMQ-----消息队列
- [Selenium]Release in dragAndDrop doesn't work after i update the version of Selenium to 2.45.0
- TCP系列42—拥塞控制—5、Linux中的慢启动和拥塞避免(二)
- 【Leetcode】【Medium】Generate Parentheses