-1

我无法弄清楚这将如何工作:

public Class1 Function1()
{
   DataTable dt;
   try
   {
     dt = new DataTable();
     //.. Do some work
     return new Class2(byref dt);
   }
   finally
   {
      dt.dispose();
   }
}


public Class2(byref DataTable dTable)
{
    this.dataTable = dTable;
}

那么,现在如果我说Class1 obj1 = Function1();obj1.dataTable会被处置吗?或者它会有适当的数据?

4

1 回答 1

1

是的,假设obj1.dataTable指的是你在里面创建的同一个对象Function1,它将被释放。Finally块总是被执行,不管是否抛出异常。

这是有关 try-finally 块的更多信息。

于 2013-05-10T01:35:48.367 回答