我在这篇文章中读到了IDisposable模式的相关内容,并想要在我的Windows窗体应用程序中实现它。我们知道,在Windows窗体.Designer.cs类中已经有Dispose方法。
private System.ComponentModel.IContainer components = null;
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
在.cs类中,我使用了Typed Dataset来读取和保存数据。
public partial class frmCustomerList
{
private MyTypedDataSet ds = new MyTypedDataSet();
...
}
那么,如何实现
IDisposable
来释放MyTypedDataSet?如果在frmCustomerList中实现IDisposable
并实现它的接口。public partial class frmCustomerList : IDisposable
{
private MyTypedDataSet ds = new MyTypedDataSet();
void Dispose()
{
ds.Dispose();
}
}
在 .Designer.cs 文件中,Dispose(bool disposing)
方法是怎么样的呢?
MyTypedDataSet
? - Ben AaronsonIDisposable
。除非你持有大量未经管理的内存,否则你不需要将其处理掉。 - Ben NIDisposable
接口呢?你不觉得只需要响应FormClosed
事件来进行清理就可以了吗? - EnigmativityFormClosed
(或FormClosing
)是适当的方式。我不建议更改设计器代码以使IDisposable
起作用。 - Enigmativity