class MyClass:IDisposable
{
~MyClass()
{
Dispose(false); //析构函数中只释放非托管资源
}
//显示调用释放本类所有资源
public void Dispose()
{
Dispose(true); //将导致所有资源释放
GC.SuppressFinalize(this); //不需要再调用本类对象的Finalize()方法,析构函数
}
protected virtual void Dispose(bool disposing)
{
if (disposing)
{
//清理托管资源
}
//清理非托管资源
}
}
{
~MyClass()
{
Dispose(false); //析构函数中只释放非托管资源
}
//显示调用释放本类所有资源
public void Dispose()
{
Dispose(true); //将导致所有资源释放
GC.SuppressFinalize(this); //不需要再调用本类对象的Finalize()方法,析构函数
}
protected virtual void Dispose(bool disposing)
{
if (disposing)
{
//清理托管资源
}
//清理非托管资源
}
}