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

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

Warning 1 CA2000 : Microsoft.Reliability : In method ‘Class1.test.testMethod()’,object ‘dt’ is not disposed along all exception paths. Call System.Idisposable.dispose on object ‘dt’ before all references to it are out of scope.
How to resolve the warnings??

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();
      }
}

解决方法

不确定为什么会收到该错误,但您可以在方法中尝试 using语句块并查看错误是否消失.试试吧:
public void testMethod()
{
    using (DataTable dt = new DataTable())
    using (DataView dv = new DataView(dt))
    {
        //your work
    }
}

相关文章

在要实现单例模式的类当中添加如下代码:实例化的时候:frmC...
1、如果制作圆角窗体,窗体先继承DOTNETBAR的:public parti...
根据网上资料,自己很粗略的实现了一个winform搜索提示,但是...
近期在做DSOFramer这个控件,打算自己弄一个自定义控件来封装...
今天玩了一把WMI,查询了一下电脑的硬件信息,感觉很多代码都...
最近在研究WinWordControl这个控件,因为上级要求在系统里,...