看了一个帖子http://topic.csdn.net/u/20091029/08/20b3b82a-83ec-4d4f-997c-cf693f691a0d.html上面有段代码public class ResourceHolder : IDisposable
{
private bool isDispose = false;
// 显示调用的Dispose方法
public void Dispose()
{
Dispose(true);
GC.SuppressFinalize(this);
} // 实际的清除方法
protected virtual void Dispose(bool disposing)
{
if (!isDisposed)
{
if (disposing)
{
// 这里执行清除托管对象的操作.
}
// 这里执行清除非托管对象的操作
}
isDisposed=true;
} // 析构函数
~ResourceHolder()
{
Dispose (false);
}
}看不懂啊,托管对象不是 不用程序员管的吗?
{
private bool isDispose = false;
// 显示调用的Dispose方法
public void Dispose()
{
Dispose(true);
GC.SuppressFinalize(this);
} // 实际的清除方法
protected virtual void Dispose(bool disposing)
{
if (!isDisposed)
{
if (disposing)
{
// 这里执行清除托管对象的操作.
}
// 这里执行清除非托管对象的操作
}
isDisposed=true;
} // 析构函数
~ResourceHolder()
{
Dispose (false);
}
}看不懂啊,托管对象不是 不用程序员管的吗?
{
// 这里执行清除托管对象的操作.
}这个到底是什么意思
public void Dispose() { Dispose(true); }
public void Close() { Dispose(true); }
~MyOleDb() { Dispose(false); } void Dispose(bool b)
{
if (!disposed)
{
if (odc != null) { odc.Close(); }
if (odcd != null) { odcd.Dispose(); }
if (oddr != null) { oddr.Close(); } disposed = true;
if (b) { GC.SuppressFinalize(this); }
}
}我写的操作access的类的析构块,这样写没错吧?