C# c语言中对象引用的一点混乱#

C# c语言中对象引用的一点混乱#,c#,.net,C#,.net,我有一个简单的问题,但我问得很困惑。 这两种情况的区别是什么 (一) (二) 版本(2)创建一个新的数据集,然后将其交给垃圾收集。除此之外,它们是相同的。在版本1中,发生了以下情况: getUsers创建一个新的DataSet对象 引用存储在ds中 在版本2中,会发生以下情况: 一个新的数据集对象被实例化,对它的引用存储在ds中 getUsers创建不同的DataSet对象 对这个新的数据集的引用将存储在ds中 旧的数据集现在不再有任何引用它的变量,将由垃圾收集器拾取 在第二个例子中,您不必要地

我有一个简单的问题,但我问得很困惑。 这两种情况的区别是什么

(一)

(二)


版本(2)创建一个新的数据集,然后将其交给垃圾收集。除此之外,它们是相同的。

在版本1中,发生了以下情况:

  • getUsers
    创建一个新的
    DataSet
    对象
  • 引用存储在
    ds
  • 在版本2中,会发生以下情况:

  • 一个新的
    数据集
    对象被实例化,对它的引用存储在
    ds
  • getUsers
    创建不同的
    DataSet
    对象
  • 对这个新的
    数据集的引用将存储在
    ds
  • 旧的
    数据集
    现在不再有任何引用它的变量,将由垃圾收集器拾取

  • 在第二个例子中,您不必要地创建了一个空的
    数据集
    ,所以第一个是优化的?不确定“优化”这个词是否正确,但是的,(1)是更好的选择,因为(2)中的新数据集()行没有任何用处。@Reed Copsey,谢谢,这就是我想说的。你说得更简洁了!:)thanx是一个简短而简单的解释。@ReedCopsey是第一个?
    DataSet ds = getUsers();
    
    DataSet ds = new DataSet();
    ds = getUsers();