公共类MyClass:IDisposable?

时间:2015-02-07 23:22:47

标签: c# .net

Q1)我应该像这样制作所有课程,以便我可以使用(...)?

是的,这是一个好习惯吗?

public void Dispose()
    {
        // in its simplest form
    }

Q2)除了我需要关闭的特定对象的代码之外,还有什么我应该添加到Dispose()方法中吗?

NB1:我知道我必须通过以下两种方式之一处理IDisposable类:

1)myClass.Dispose();

2)使用(MyCalss myClass = new MyClass())

NB2:我有一些课程需要在应用程序的全部时间内运行,所以我不会将这些IDisposable。

1 个答案:

答案 0 :(得分:0)

不,您不必将所有类都用于实现IDisposable接口。只有当您的班级使用非托管资源时,才应执行此操作。

根据MSDN

  

此接口的主要用途是释放非托管资源。   垃圾收集器自动释放分配给的内存   不再使用该对象时的托管对象。但事实并非如此   可以预测何时会发生垃圾收集。此外,   垃圾收集器不了解非托管资源,例如   窗口句柄,或打开文件和流。

我有一些课程需要在应用程序的全部时间运行,因此我不会将这些IDIisposable。

在这种情况下,提供,您不想创建这些类的实例,合理的解决方案是使它们成为static