[英]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.