黑马程序员技术交流社区

标题: .Net中Dispose()和Close()的区别 [打印本页]

作者: songFeng4985    时间: 2012-12-7 15:00
标题: .Net中Dispose()和Close()的区别
有时候基本的也是很有意思的,反倒是更深层次的。比如Disponse()和Close()二者的区别和关系,以前就没有在意过为什么是这样设计的。希望哪位高手能详解一下
作者: 马金池    时间: 2012-12-7 15:47
杨中科老师解释过,用完水后,close好比关掉水龙头,但可以再打开使用(open),dispose好比直接拆掉这个水龙头,再用得重装个新的(new)。
作者: 马毅    时间: 2012-12-10 19:26
比如说对一个connection对象,close之后还在连接池中,Disponse是直接把连接对象销毁掉~~
作者: Sailing.    时间: 2012-12-11 17:11
学习了。你们都是自学的吗?
作者: 快乐之恋    时间: 2012-12-11 17:25
在.Net Framework里,Close()被设计成public的,并且在Close()里面调用被隐藏的Dispose(); 而后Dispose()再去调用另一个virtual的Dispose(bool)函数。所以如果从这个class继承,你就必须实现Dispose(bool)方法。调用者通过调用Close()就会间接调用到你重载的那个Dispose(bool)方法去释放资源了。




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