當我運行代碼分析工具,我得到如下:CA2000:Microsoft.Reliability:對對象調用System.IDisposable.Dispose「DT」之前,所有引用超出範圍
警告1個CA2000: Microsoft.Reliability:在'Class1.test.testMethod()'方法中,對象'dt'不是沿着所有異常路徑處理的。在所有對它的引用超出範圍之前,調用System.IDisposable.Dispose對象'dt'。 如何解決警告?
public void testMethod()
{
DataTable dt = new DataTable();
DataTable dt1= new DataTable();
try
{
if (dt.Rows.Count == 0)
{
dt1.Merge(dt);
}
}
catch
{
throw;
}
finally
{
if (dt != null) dt.Dispose();
if (dt1 != null) dt1.Dispose();
}
}
'object'dt'沒有沿着所有異常路徑放置我認爲編譯器實際上是在抱怨空的catch塊,但是使用using語句(比如當前評分最高的答案)應該是最好的做法,那麼你甚至不需要調用dispose。編輯:+1因爲警告而煩惱。 – Izzy