首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

Form的close()跟Dispose()方法有什么区别啊

2012-09-04 
Form的close()和Dispose()方法有什么区别啊?close()是关闭窗体的意思,Dispose()是释放资源的意思,我就只知

Form的close()和Dispose()方法有什么区别啊?
close()是关闭窗体的意思,Dispose()是释放资源的意思,我就只知道这两句话,更具体的区别呢?

我自己都是 先close 然后再Dispose 这样写两句来关闭窗体的,这样子做好吗?或者是不是多余的,只要close就可以了?

还有,在一个窗体页面代码里建立的实例,假如直接点击窗体上的关闭按钮,那这些类的实例会不会自动释放的?比如Command对象。

[解决办法]
在以下两种情况下调用 Close 不会释放窗体:(1) 窗体是多文档界面 (MDI) 应用程序的一部分且是不可见的;(2) 您是使用 ShowDialog 显示的该窗体。在这些情况下,需要手动调用 Dispose 来将窗体的所有控件都标记为需要进行垃圾回收。
[解决办法]
功能如字面意思描述
Close - 关闭
Dispose - 清除/释放

Close表示将当前资源关闭,以Connection 数据库连接为例,如果是连接状态,调用Close之后,该连接会被关闭,但是后续依然可以Open并调用

Dispose表示将当前资源关闭,以Connection 数据库连接为例,如果是连接状态,调用Dispose之后,该连接会关闭并被销毁,打上回收标记.后续不可再直接调用该实例.

"执行与释放或重置非托管资源相关的应用程序定义的任务。"
http://msdn.microsoft.com/zh-cn/library/system.idisposable.dispose.aspx

实做了IDisposable接口.

热点排行