IDisposable 接口 使用准则
来源:互联网 发布:mac landesk 卸载 编辑:程序博客网 时间:2024/05/16 23:55
准则一:只有在需要情况下才使用该接口,例如:
1.你的类包含了非托管资源
2.你的类包含了 实现IDisposable 接口 的属性
准则二:对于有托管资源的类,继承IDisposable 接口,尽量不要 使用 析构函数,Dispose方法越简单越好。没有必要对类里面的托管资源 赋值 null.
准则三:对于有一个非托管资源的类,继承IDisposable 接口,需要实现Dispose方法和析构函数。
1.不要创建含有多个非托管资源的类
2.不要创建即含有非托管资源又有托管资源的类
3.Dipose方法最后要加上GC.SuppressFinalize(this);
参考:http://blog.stephencleary.com/2009/08/how-to-implement-idisposable-and.html
附上一份CODE:
public class ClassA : IDisposable { //在垃圾回收器自动回收时会调用 //通常不需要 ~ClassA() { Dispose(false); } public void Dispose() { Dispose(true);//这样会释放所有的资源 GC.SuppressFinalize(this);//不需要再调用本对象的Finalize方法 } //可供子类重写 protected virtual void Dispose(bool disposing) { if (disposing) { //清理托管资源和类所拥有的实现IDisposable的成员 } //清理非托管资源 } }
阅读全文
0 0
- IDisposable 接口 使用准则
- IDisposable接口的使用
- IDisposable 接口
- IDisposable 接口
- IDisposable 接口
- IDisposable接口
- IDisposable 接口
- .NET中IDisposable接口的基本使用
- 关于使用using 要实现IDisposable接口
- NET中IDisposable接口的基本使用
- .NET中IDisposable接口的基本使用
- IDisposable 使用
- 正确实现 IDisposable 接口
- IDisposable 接口介绍
- 正确实现 IDisposable 接口
- 正确实现 IDisposable 接口
- 正确实现 IDisposable 接口
- 正确实现 IDisposable 接口
- LRU算法的实现
- navicat工具来将SQL Server数据迁移到MySQL
- 裸奔的驴算法刷题日记5-31
- Android开发之http网络请求返回码问题集合。
- java通过JDBC驱动连接操作hive实例
- IDisposable 接口 使用准则
- 算法导论程序41--赫夫曼编码
- Java动态代理机制详解(JDK 和CGLIB,Javassist,ASM)
- 调度组dispatch_group_t
- Android 5.1高通方案增加GPIO按键
- php判断 !==false
- SSL peer shut down incorrectly
- Head First JavaScript 存储数据
- 数据增强:DataAugmentation