之前写过很多XNA的程序,都会碰到这种情况: 销毁一个类时,要把他所占用的资源释放。
如果类的资源没有释放,将会导致内存溢出。
那么现在给出.NET官方定义的一个IDisposable的编程模式:
class MyClass:IDisposable
{
~MyClass()
{
Dispose(false); //析构函数中只释放非托管资源
}
//显示调用释放本类所有资源
public void Dispose()
{
Dispose(true); //将导致所有资源释放
GC.SuppressFinalize(this); //不需要再调用本类对象的Finalize()方法,析构函数
}
protected virtual void Dispose(bool disposing)
{
if (disposing)
{
//清理托管资源
}
//清理非托管资源
}
}
本文介绍了一个遵循.NET官方定义的IDisposable编程模式实现。该模式通过在类中实现IDisposable接口来确保资源得到妥善释放,防止内存溢出。文章详细展示了如何通过Dispose方法释放托管和非托管资源。
62

被折叠的 条评论
为什么被折叠?



