有些对象,如connection、DataReader、DataSet等等,最后用完了后是用close()合适还是用dispose()?或者两个都要加上?还是最后都只用dispose()就可以?
我想知道的是怎么样才最少占用资源、程序性能最高?希望给出有力的答案,最好有参考,谢谢
DataReader,DataSet在使用完后,Close.
connection一般是写在using里的,例如:
using(SqlConnection sqlConn=......)
{
//连接数据库
//对数据库操作,其间可能会用到DataReader,DataSet
//....
//关闭DataReader,DataSet
sqlConn.Close();
}
这样,sqlConn会在花括号结束时被自动Dispose,及时回收.
以connection来说,close是关闭连接,但是它是链接对象仍然存在,下一次需要该链接,只需要调整用open方法就行,而dispose()则是析构链接对象,当你需要链接时,需要重新实例化connection对象,和open()链接。
一般使用会用close(),
dispose()会释放内存,我一般不用这个,因为C#的垃圾回收就自动帮我们搞定,函数的作用域完成,就会自动析构,不用我们显式地析构,除非你的程序对内存空间有苛刻的要求