你发现也可以写成Object A=new   test(); 那么究竟是哪个呢?你应该多看看面向对象编程的书才能理解

解决方案 »

  1.   

    test   A=new   test();   
    能直接写成A=new test()吗?为什么A前面也要加test?-------------------
    .net是强类型语言,定义以个变量先要声明类型
      

  2.   

    DataTable tbClass=new DataTable("tbClass");
    tbClass.PrimaryKey=new DataColumn[] {ClassID};
    这里的tbClass.PrimaryKey是一个对象引用吗??
      

  3.   

    我举一个例子,不知是不是易于理解,:)People mike;  // 说明 mike 是一个人,注意,只是一个说明!
    mike = new People("Mike");  // 创建一个具体的人,姓名 Mike,并用 mike 来代表这个对象
      

  4.   

    其实很简单,你把程序从左往右读
    Test A=new Test();
    首先计算机为A分配一定的内存空间,但是分配多少呢?取决于左边的 Test ,分配好了以后,应该存储什么对象的内容?A虽然是引用类型,但是存储引用信息一样是需要内存空间的。根据右边的TEST(),往 A的内存空间里写入 A 引用了 Test()的相关信息。
      

  5.   

    我的理解是这样的.不知道对不对啊.首先在栈上创建一个A.然后通过new Test()在堆上分配了一块内存空间.然后栈上的A指向分配的那块内存空间.分配内存空间的大小根据Test来定.??
      

  6.   

    首先声明:引用类型不是在堆栈上面~~~~
    而是在托管堆上面!!!!值类型才是在堆栈上面进行空间的分配!
    当new一个类之后,就会为这个对象分配空间这样写更容易理解
    Test a;//定义一个Test类型
    a=new Test();//为Test类型分配空间,并且使a指向Test
      

  7.   

    DataTable tbClass=new DataTable("tbClass");
    tbClass.PrimaryKey=new DataColumn[] {ClassID};
    那这两句话根据wangzi041() 说的.怎么执行的?tbClass.PrimaryKey=new DataColumn[] {ClassID};这句话是为DataColumn类型分配空间,并且使tbClass.PrimaryKey指向DataColumn吗?
    tbClass.PrimaryKey也是对象引用吗?
      

  8.   

    test   A=new   test();   ____________--test   A:在栈上分配一个引用.
    new   test();   在堆上分配对象实例.
      

  9.   

    DataTable tbClass=new DataTable("tbClass");
    tbClass.PrimaryKey=new DataColumn[] {ClassID};
    那这两句话根据wangzi041() 说的.怎么执行的?tbClass.PrimaryKey=new DataColumn[] {ClassID};这句话是为DataColumn类型分配空间,并且使tbClass.PrimaryKey指向DataColumn吗?
    tbClass.PrimaryKey也是对象引用吗?________________是.