-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 に答える