asp.net(C#)网站中close()与 dispose()的使用,请教高手

来源:百度知道 编辑:UC知道 时间:2024/06/04 01:57:58
有些对象,如connection、DataReader、DataSet等等,最后用完了后是用close()合适还是用dispose()?或者两个都要加上?还是最后都只用dispose()就可以?
我想知道的是怎么样才最少占用资源、程序性能最高?希望给出有力的答案,最好有参考,谢谢

DataReader,DataSet在使用完后,Close.
connection一般是写在using里的,例如:
using(SqlConnection sqlConn=......)
{
//连接数据库
//对数据库操作,其间可能会用到DataReader,DataSet
//....
//关闭DataReader,DataSet
sqlConn.Close();
}

这样,sqlConn会在花括号结束时被自动Dispose,及时回收.

1:Dispose和Close是一样的,Close在内部调用了Dispose,使用Close只是为了更合乎语法习惯。
2:使用Using,你可以不调用,系统会自动调用Dispose,如果该类实现了IDispose的接口的话.

以connection来说,close是关闭连接,但是它是链接对象仍然存在,下一次需要该链接,只需要调整用open方法就行,而dispose()则是析构链接对象,当你需要链接时,需要重新实例化connection对象,和open()链接。
一般使用会用close(),
dispose()会释放内存,我一般不用这个,因为C#的垃圾回收就自动帮我们搞定,函数的作用域完成,就会自动析构,不用我们显式地析构,除非你的程序对内存空间有苛刻的要求