本文详细对比了C#中析构函数、Dispose和Close方法的区别,三者都是释放资源,本文介绍了他们各自的使用方法和使用场景,希望对大家有所帮助。
一、Close与Dispose这两种方法的区别
调用完了对象的Close方法后,此对象有可能被重新进行使用;而Dispose方法来说,此对象所占有的资源需要被标记为无用了,也就是此对象要被销毁,不能再被使用。例如常见.Net类库中的SqlConnection这个类,当调用完Close方法后,可以通过Open重新打开一个数据库连接,当彻底不用这个对象了就可以调用Dispose方法来标记此对象无用,等待GC回收。
二、三者的区别如图
| 析构函数 | Dispose方法 | Close方法 | |
| 意义 | 销毁对象 | 销毁对象 | 关闭对象资源 |
| 调用方式 | 不能被显示调用,在GC回收是被调用 | 需要显示调用或者通过using语句 | 需要显示调用 |
| 调用时机 | 不确定 | 确定,在显示调用或者离开using程序块 | 确定,在显示调用时 |










