关于IDisposeable的问题
public MyClass : IDisposeable
{
private bool hasDisposed = false;
public void Dispose()
{
Dispose(true)
GC.SuppressFinalize(this);//告诉CLR不需要再调用析构函数
}
protected virtual void Dispose(bool disposing)
{
if(!hasDispose)
{
if(disposing)
{
// 释放托管资源
}
// 释放非托管资源
}
hasDispose = true;
}
~MyClass()
{
Dispose(false);
}
}
我有3个不明白的地方:
1:为什么还要重载一个Dispose(bool)呢?只在必须实现的void Dispose()中去释放资源不可以吗?
2:请问所有继承自IDisposeable的类都需要多重载一个Dispose(bool)吗?
2:有谁可以按照这个程序帮我填一下具体的代码,我不知道该如何补充代码。我想看看有什么代码可以将这个程序呈现出来。(就是个简单的Demo就OK)
------解决方案--------------------2. 请问所有继承自IDisposeable的类都需要多重载一个Dispose(bool)吗?
其实并不见得一定要这样做,只不过这样做可能更完善些
3.有谁可以按照这个程序帮我填一下具体的代码,我不知道该如何补充代码。我想看看有什么代码可以将这个程序呈现出来
.NET框架程序设计有一个模拟的例子,可参考