首页 > 解决方案 > 处置公共数据集

问题描述

我想在表单代码中声明一个类级别数据集。

public partial class Frm_Stazione : Form
    {
        public Frm_Stazione()
        {
            InitializeComponent();
        }

    private readonly DataSet DS = new DataSet();

    private void Frm_Stazione_Load(object sender, EventArgs e)
    {
     ………
    }
  }

之所以这样声明,是因为数据集必须可由不同的 void 访问,并且必须保持可用,直到 Form 关闭。我的问题是:Visual Studio 2019 版,表示此错误

'IDE0069 DS 一次性字段永远不会被删除'。

当然我错了,这可能是我的错误。代码是用 C# 编写的。

标签: c#.netwinformsdatasetidisposable

解决方案


好吧,你必须Dispose DS实例化,因为它是IDisposable(即分配一些应该通过释放的非托管.Dispose()资源):

  public partial class MyForm : Form {
    ...
    // Unmanaged resources are allocated ...
    private readonly DataSet DS = new DataSet(); 
    ...

    protected override void Dispose(bool disposing) {
      base.Dispose(disposing);

      if (disposing) {
        // ... Unmanaged resources are released
        if (DS != null) { // <- check for null : in order to be on the safe side
          DS.Dispose();
        }
      }
    }
    ...
  } 

推荐阅读