【发布时间】:2013-05-14 22:20:14
【问题描述】:
当我运行代码分析工具时,我得到以下信息:
警告 1 CA2000:Microsoft.Reliability:在方法“Class1.test.testMethod()”中,对象“dt”并未沿所有异常路径进行处理。在对对象“dt”的所有引用超出范围之前调用 System.IDisposable.Dispose。 如何解决警告??
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' is not disposed along all exception paths我认为编译器实际上是在抱怨空的 catch 块,但是使用 using 语句(如当前评价最高的答案)应该是最佳实践,因为您甚至不需要然后调用 dispose 。编辑:+1 对警告感到困扰。
标签: c#