DataTable dtt;
linkdatabase lk = new linkdatabase(); //linkdatabase是自定义类,返回datatable
dtt = lk.selectdataset(stcn, strsql);

DataTable dtt = new DataTable();
linkdatabase lk = new linkdatabase(); //linkdatabase是自定义类,返回datatable
dtt = lk.selectdataset(stcn, strsql);
两种方式都不会出错,产生的效果也是一样的,只是这两种方式有没有什么区别,new一下是不是产生了内存,那是不是就第一种方式更节省内存提高速度呢.

解决方案 »

  1.   

    是的;new 的时候就需要在托管堆上创建一个空间
      

  2.   

    就这段代码而言,dtt = new DataTable()是没有必要的。DataTable dtt = new DataTable();//这里分配了内存,dtt指向分配的内存空间
    linkdatabase lk = new linkdatabase(); //linkdatabase是自定义类,返回datatable
    dtt = lk.selectdataset(stcn, strsql); //这个语句修改了dtt指向的内存空间,dtt原来指向的内存空间将会被GC回收
      

  3.   

    楼主的理解是对的。。DataTable dtt = new DataTable(); 是在托管堆上申请了空间。但是楼主的2种写法都不好,定义变量的时候就要复初值,so...
    linkdatabase lk = new linkdatabase(); 
    DataTable  dtt = lk.selectdataset(stcn, strsql);