我想编写一个简单易用的类,以确保清除所有可能的资源。我不想把这种责任交给班上的用户。
你不能那样做。内存管理根本不是为了容纳不是专门用于内存的资源而构建的。
IDisposable模式供开发人员使用,它是在对象完成操作时告诉对象的一种方式,而不是让内存管理人员通过使用引用计数之类的方法来弄清楚这一点。
对于无法正确处理对象的用户,可以使用Finalizer作为后备,但它不能作为清理对象的主要方法。为使工作顺利进行,应正确放置对象,这样就不必调用成本更高的Finalizer。

我想编写一个简单易用的类,以确保清除所有可能的资源。我不想把这种责任交给班上的用户。
你不能那样做。内存管理根本不是为了容纳不是专门用于内存的资源而构建的。
IDisposable模式供开发人员使用,它是在对象完成操作时告诉对象的一种方式,而不是让内存管理人员通过使用引用计数之类的方法来弄清楚这一点。
对于无法正确处理对象的用户,可以使用Finalizer作为后备,但它不能作为清理对象的主要方法。为使工作顺利进行,应正确放置对象,这样就不必调用成本更高的Finalizer。