msu*_*ash 4 c# dispose finalizer
请参阅MSDN中的代码示例:(http://msdn.microsoft.com/en-us/library/b1yfkh5e ( v=VS.100 ) .aspx)
// Design pattern for a base class.
public class Base: IDisposable
{
private bool disposed = false;
//Implement IDisposable.
public void Dispose()
{
Dispose(true);
GC.SuppressFinalize(this);
}
protected virtual void Dispose(bool disposing)
{
if (!disposed)
{
if (disposing)
{
// Free other state (managed objects).
}
// Free your own state (unmanaged objects).
// Set large fields to null.
disposed = true;
}
}
// Use C# destructor syntax for finalization code.
~Base()
{
// Simply call Dispose(false).
Dispose (false);
}
}
Run Code Online (Sandbox Code Playgroud)
在Dispose()实现中,它调用GC.SupressFinalize();,但提供了一个析构函数来完成对象.
调用GC.SuppressFinalize()时为析构函数提供实现有什么意义?
只是有点混淆意图是什么?