黑马程序员技术交流社区

标题: using在出了作用域以后调用Dispose方法的问题 [打印本页]

作者: 高宜    时间: 2012-5-15 20:30
标题: using在出了作用域以后调用Dispose方法的问题
using在出了作用域以后,先判断有无close如果没先close,在后在Dispose。但是数据连接Dispose之后,连接就销毁了,
为什么其它的实现了IDisposable接口的还继续能使用using啊?
作者: 魏庆君    时间: 2012-5-24 03:52
当我们写code时候,如果要实现Close和Dispose的时候,要注意Close和Dispose的设计模式。.net的一些class只提供Close,而且派生自IDisposable,并且隐藏了Dispose方法。
在.net的framework里,Close()被设计成public的,并且在Close()里面call被隐藏的Dispose(); Dispose()去call另一个virtual的Dispose(bool)函数。所以如果你从这个class继承,你就必须实现Dispose (bool)方法。
作者: 朱亮辉    时间: 2012-5-24 09:12
只有实现了IDisposable接口的才能使用using




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2