public dataset mt()
{
   dataset ds =new dataset();
   ds.tables.add(new table());
   return ds;
}public void getDs1()
{
   dataset ds=mt();
   
}
public void getDs2()
{
   dataset ds= new dataset();
ds =dsmt()
}
getDs1()中接收值的方式和getDs2()中接收值的方式有什么不同?

解决方案 »

  1.   

    不一样
    getDs1();所用的dataset是上面声明好的
    而getDs2();的dataset是重新声明的
      

  2.   

    一个鸟样!,那么简单都出来混。在public void getDs2() 
    做了无用功。
    dataset ds= new dataset(); 
    不过函数执行完后会释放空间,
      

  3.   


    LS正确...
    getDs1()所用的dataset是mt()声明好的 
    而getDs2()的dataset是重新声明的
      

  4.   

    差不多
    dataset ds= new dataset(); 先声明
      

  5.   

    dataset ds= new dataset(); 先分配内存
    ds =dsmt() 
    这里DS的引用是 dsmt里的dataSet
      

  6.   

    new dataset(); 分配内存 
    -------------------------------------------------------
    dataset ds=mt(); 
    ds指向new dataset(); 堆中的内存-------------------------------------------------
    dataset ds= new dataset(); 
    ds =dsmt() 
    问题  ds中的数据是dsmt() 返回来的指针?
    还是还是已经将dsmt()中的数据转到了new dataset(); 这里面?
      

  7.   

    看半天没明白ds =dsmt() dsmt()在哪里定义的
      

  8.   

    public dataset mt() 

      dataset ds =new dataset(); 
      ds.tables.add(new table()); 
      return ds; 
    } public void getDs1() 

      dataset ds=mt(); 
      

    public void getDs2() 

      dataset ds= new dataset(); 
    ds =dsmt() 

    -------------------------------------------------------------
    new dataset(); 分配内存 
    ------------------------------------------------------- 
    dataset ds=mt(); 
    ds指向new dataset(); 堆中的内存 ------------------------------------------------- 
    dataset ds= new dataset(); 
    ds =dsmt() 
    问题  ds中的数据是dsmt() 返回来的指针? 
    还是还是已经将dsmt()中的数据转到了new dataset(); 这里面? 
      

  9.   

    getDs1()是初始化
    getDs2()是赋值