C#类成员的初始化顺序

    对于类型第一个实例的构造过程大致如下:

  1. 分配静态成员的内存空间,此时空间存储数据为0;
  2. 执行静态成员的初始化语句;
  3. 执行基类的静态构造函数;
  4. 执行类型的静态构造函数;
  5. 分配成员的内存空间,此时空间存储数据为0;
  6. 执行成员的初始化语句;
  7. 执行相应的基类构造函数;
  8. 执行类型的构造函数。

  那么对于同类型的后续创建对象,前4个步骤不用执行的,直接从第5步开始。

    了解上面的内容后,下面的代码就很好理解了

下面代码, new B(); 时会输出什么

    public abstract class A
    {
        
        public A ()
        {
            print();
        }

        public virtual void print(){}

    }

    public class B:A
    {
        int x = 1
        int y;

        public B()
        {
           y = -1;
        }

        public overide void print()
        {
            Console.WriteLine("x={0};y={1}",x,y);
        }

    }





你可能感兴趣的:(C#,初始化顺序)