public class HelloWorld
{
public int i = 21;
static HelloWorld d = new HelloWorld(); public void saihi()
{
Console.WriteLine(d.i);
}
} class Program
{
static void Main(string[] args)
{
HelloWorld aa = new HelloWorld();
aa.i++;
HelloWorld bb = new HelloWorld();
bb.i++;
HelloWorld cc = new HelloWorld();
cc.i++;
HelloWorld dd = new HelloWorld();
dd.i++; aa.saihi();
bb.saihi();
cc.saihi();
dd.saihi();
Console.ReadLine();
}
}在上面的代码中:
1.当NEW一个HELLOWORLD时是先看构造函数先还是先看Static先??
2.能分析一下内存的布局吗??
1、先变量后构造函数
2、先静态后实例化
3、先派生类后基类(对于变量和静态构造函数而言)
4、对于实例构造函数,基类构造函数在派生类构造函数之前执行
6、避免从一个构造器调用虚方法,如果在初始化一个对象时需要调用一些虚方法,应在完整构造对象的地方使用两阶段的构建并随后调用已构造对象的初始化方法
继承类实例变量初始化
基类静态静态成员变量初始化
基类实例变量初始化
基类构造方法调用
继承类构造方法调用。