見從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);
}
}
在它調用GC.SupressFinalize()的Dispose()實現;但是提供析構函數,最後確定對象。
當調用GC.SuppressFinalize()時爲析構函數提供實現有什麼意義?
只是有點混淆意圖是什麼?
謝謝你。在系統中沒有「使用」上下文的情況下使用對象時有意義。 – msuhash 2010-11-16 11:56:02