簡體   English   中英

妥善處理變量。 使用聲明是否足夠?

[英]Properly disposing of variable. Are using statements enough?

我有一個類,其中包含調用存儲過程的方法。 其中一些存儲過程返回其他存儲過程沒有的數據結構。 以下是其中一種方法的示例。

public DataTable GetProductData(int productID)
{
  DataTable dataTable = new DataTable();
  using (SqlDataAdapter sqlDataAdapter = new SqlDataAdapter())
  {
    using (SqlConnection sqlConn = new SqlConnection("CONNECTIONSTRING"))
    {
      using (SqlCommand sqlCmd = new SqlCommand("getProductData", sqlConn))
      {
        sqlCmd.CommandType = CommandType.StoredProcedure;
        sqlCmd.Parameters.AddWithValue("@ID", productID);
        sqlConn.Open();
        sqlDataAdapter.Fill(dataTable);
      }
    }
  }
  return dataTable;
}

當需要數據訪問時,該方法由另一個程序使用。 以下是使用上述方法的方法示例...

public DataTable GetProductInfoFromDatabase(int productID)
{
  DataLibrary dl = new DataLibrary();
  return dl.GetProductData(productID);
}

我想知道的是,一旦檢索到數據,我應該如何處理dl變量。 垃圾收集是否會處理它,還是應該在定義了GetProductData方法的類中實現IDisposable? using聲明是否足夠?

除非您的班級持有非托管資源或其他IDisposable對象; ,你不需要自己實現IDisposable 一個空的Dispose方法什么都不買。

在您提供的代碼中, using語句就足夠了。 GetProductInfoFromDatabase創建的DataLibrary對象將由GC按預期收集。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM