关于C#类型的Dispose方法和析构函数

2024-11-24 12:03:20
推荐回答(2个)
回答1:

无法调用析构函数。它们是被自动调用的。
程序员无法控制何时调用析构函数,因为这是由垃圾回收器决定的。垃圾回收器检查是否存在应用程序不再使用的对象。如果垃圾回收器认为某个对象符合析构,则调用析构函数(如果有)并回收用来存储此对象的内存。程序退出时也会调用析构函数。

可以通过调用 Collect 强制进行垃圾回收,但大多数情况下应避免这样做,因为这样会导致性能问题。

回答2:

实现IDispose接口,在接口中用GC.SuppressFinalize(this)释放

Class YourClass:IDispose
{
private void Dispose()
{
GC.SuppressFinalize(this);
}
}