A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 刘逍遥 中级黑马   /  2012-6-23 09:50  /  2699 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

如题,求教高手解释下,这个和IDisposable接口有什么关系

评分

参与人数 1技术分 +1 收起 理由
郑文 + 1

查看全部评分

6 个回复

倒序浏览
当控制从using块通过成功运行到结束或者抛出异常退出时,IDispose.Dispose()将会被执行。记住你例示的对象必须实现System.IDisposable接口。using语句定义了哪个对象将被清除的一个范围

评分

参与人数 1技术分 +1 收起 理由
郑文 + 1

查看全部评分

回复 使用道具 举报
因为connection、command都实现了IDisposable接口,用using方便管理,出了using范围的就会执行IDispose.Dispose()。

评分

参与人数 1技术分 +1 收起 理由
郑文 + 1

查看全部评分

回复 使用道具 举报
只要实现IDisposable接口的类,可以用using,出using范围后销毁对象。

评分

参与人数 1技术分 +1 收起 理由
郑文 + 1

查看全部评分

回复 使用道具 举报
实现这个接口的,使用了using是对资源的释放。。。
如果不对资源释放,不断的调用会导致服务器承受的压力过大。。。最后导致服务器瘫痪。。。。

评分

参与人数 1技术分 +1 收起 理由
郑文 + 1

查看全部评分

回复 使用道具 举报
using(对象的声名或者实例化)
{
  //程序体
}
超出了范围就会自动调用引用对象的Dispose()方法来释放资源。

    要求对象对应的类要支持IDisposable接口,就是在内部实现了IDisposable接口的Dispose()方法。因为using语句最终生成的就是一个try, finally代码块,在finally代码块里调用对象的Dispose()方法释放资源。

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
using()
{

}
出了方括号就会自动执行dispose释放资源,算是一种用法简单的用法吧,至于原理ls已经说得很清楚了。

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马