微软建议的配置模式说Dispose()和终结器都应该调用虚拟的第三种方法Dispose(bool).所以它看起来像这样:
public class DisposeBase : IDisposable
{
private bool _Disposed = false;
public void Dispose()
{
Dispose(true);
GC.SuppressFinalize(this);
}
~DisposeBase()
{
Dispose(false);
}
protected virtual void Dispose(bool disposing)
{
if (!_Disposed)
{
if (disposing)
{
/* Get rid of managed resources */
}
/* Get rid of unmanaged resources */
_Disposed = true;
}
}
}
Run Code Online (Sandbox Code Playgroud)
派生类将覆盖Dispose(bool).我想重组它有点像这样:
public abstract class ExtendableResourceHandlerBase : IDisposable
{
private bool _Disposed = false;
/* private resources managed and unmanaged */
public void …
Run Code Online (Sandbox Code Playgroud)