使用返回DataTable的方法

The*_*des 3 c# datatable idisposable

请考虑以下示例:

public static DataTable GetDataTable()
{
    using(DataTable dt = new DataTable())
    {
        // fill DataTable logic
        return dt;
    }
}

public void main()
{
    DataTable dt = GetDataTable();

    // contine using dt
}
Run Code Online (Sandbox Code Playgroud)

我是否应该dt可以使用main()或被DataTable处置GetDataTable()

Luk*_*keH 7

是的,DataTable在离开using街区时遗嘱将被处理掉GetDataTable.


il_*_*uru 5

是的,DataTable当代码退出使用范围时将被处理.

你应该移动using到你的main()

public static DataTable GetDataTable()
{
    DataTable dt = new DataTable()

    // fill DataTable logic
    return dt;
}

public void main()
{
  using(DataTable dt = GetDataTable())
  {
  // contine using dt
  }//here the table is disposed
}
Run Code Online (Sandbox Code Playgroud)