本帖最后由 gyf529036756 于 2011-05-25 14:48:24 编辑

解决方案 »

  1.   

    int x = 1中的变量x是在什么时候分配内存的,我在调试过程中,int x=1是在执行构造函数之前运行的。
      

  2.   

    C#允许使用内联(inline)初始化语法来初始化类的字段。
    所谓内联,就是指代码中直接赋值来初始化,而不是通过构造器。
      

  3.   

    我做了个实验。就是只写A a;
    //后面加断点
    发现a为null,说明这时没有分配内存。A a = new A();
    //后面加断点发现a有值,说明已经分配了。不知你问的是不是这个?
      

  4.   

    A a = new A();
    这一句做了三件事
    1,堆上分配内存
    2,调用构造,初始化对象成员
    3,将这个新对象的引用赋给a至于那个x,因为x是类的成员,在为对象分配内存时当然要给他分个单人间,所以x和对象是同时分配在堆上的
    另:方法中的变量分在线程栈上
      

  5.   

    楼上说得对,A a = new A();这条语句在定义a的同时已经实例化了,
    在实例化之前x是没有分配内存的。