首页 > 代码库 > c#之如何正确地实现IDisposable接口
c#之如何正确地实现IDisposable接口
见实例:
public class TestClass : IDisposable { //供程序员显式调用的Dispose方法 public void Dispose() { //调用带参数的Dispose方法,释放托管和非托管资源 Dispose(true); //手动调用了Dispose释放资源,那么析构函数就是不必要的了,这里阻止GC调用析构函数 GC.SuppressFinalize(this); } //protected的Dispose方法,保证不会被外部调用。 //传入bool值disposing以确定是否释放托管资源 protected void Dispose(bool disposing) { if (disposing) { ///TODO:在这里加入清理"托管资源"的代码,应该是xxx.Dispose(); } ///TODO:在这里加入清理"非托管资源"的代码 } //供GC调用的析构函数 ~TestClass() { Dispose(false);//释放非托管资源 } }
转载请注明出处:http://www.cnblogs.com/jietian331/p/6913410.html
c#之如何正确地实现IDisposable接口
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。