清理非托管资源
通过将对象的范围限制为 protected,您可以防止应用程序用户直接调用对象的 Finalize 方法。 除此之外,我们强烈建议您不要直接从应用程序代码中调用非基类的类的 Finalize 方法。 为适当释放非托管资源,建议您实现公共的 Dispose 或 Close 方法,这两个方法可为对象执行必要的清理代码操作。 IDisposable 接口为实现接口的资源类提供 Dispose 方法。 因为 Dispose 方法是公共的,所以应用程序用户可以直接调用该方法来释放非托管资源占用的内存。 在正确实现 Dispose 方法时,Finalize 方法在未能调用 Dispose 方法的情况下充当防护措施来清理资源。 有关正确实现的更多信息,请参见 实现 Dispose 方法。
本节内容
实现 Dispose 方法
描述用于释放非托管资源的 Dispose 方法的实现。Finalize 方法和析构函数
介绍 Finalize 方法和析构函数如何允许对象在垃圾回收器自动回收对象的内存之前执行必要的清理操作。重写 Finalize 方法
描述 Finalize 和 Dispose 方法的合作方式。C# 与 C++ 中的析构函数语法
描述 Finalize 方法在 C# 和 C++ 中的等效方法。使用封装资源的对象
描述确保 Dispose 方法得到调用的方式,例如 C# using 语句(在 Visual Basic 中为 Using)。
参考
- System.IDisposable
定义用于释放非托管资源的 Dispose 方法。