Q1)我应该像这样制作所有课程,以便我可以使用(...)?
是的,这是一个好习惯吗?public void Dispose()
{
// in its simplest form
}
Q2)除了我需要关闭的特定对象的代码之外,还有什么我应该添加到Dispose()方法中吗?
NB1:我知道我必须通过以下两种方式之一处理IDisposable类:
1)myClass.Dispose();
2)使用(MyCalss myClass = new MyClass())
NB2:我有一些课程需要在应用程序的全部时间内运行,所以我不会将这些IDisposable。
答案 0 :(得分:0)
不,您不必将所有类都用于实现IDisposable
接口。只有当您的班级使用非托管资源时,才应执行此操作。
根据MSDN:
此接口的主要用途是释放非托管资源。 垃圾收集器自动释放分配给的内存 不再使用该对象时的托管对象。但事实并非如此 可以预测何时会发生垃圾收集。此外, 垃圾收集器不了解非托管资源,例如 窗口句柄,或打开文件和流。
我有一些课程需要在应用程序的全部时间运行,因此我不会将这些IDIisposable。
在这种情况下,提供,您不想创建这些类的实例,合理的解决方案是使它们成为static
。