CA2000:Microsoft.Reliability:在对所有引用超出范围之前调用System.IDisposable.Dispose对象'dt'

sal*_*mad 7 c#

当我运行代码分析工具时,我得到以下内容:

警告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();
      }
}
Run Code Online (Sandbox Code Playgroud)

Hab*_*bib 5

不确定为什么会出现该错误,但您可以using在方法中尝试使用语句块并查看错误是否消失.试试吧:

public void testMethod()
{
    using (DataTable dt = new DataTable())
    using (DataView dv = new DataView(dt))
    {
        //your work
    }
}
Run Code Online (Sandbox Code Playgroud)