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

yutaozj 2012-04-14 03:45:04
close()是关闭窗体的意思,Dispose()是释放资源的意思,我就只知道这两句话,更具体的区别呢?

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

还有,在一个窗体页面代码里建立的实例,假如直接点击窗体上的关闭按钮,那这些类的实例会不会自动释放的?比如Command对象。
...全文
782 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
鸭梨山大帝 2012-04-14
  • 打赏
  • 举报
回复
功能如字面意思描述
Close - 关闭
Dispose - 清除/释放

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

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

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

实做了IDisposable接口.
orochiheart 2012-04-14
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]

在以下两种情况下调用 Close 不会释放窗体:(1) 窗体是多文档界面 (MDI) 应用程序的一部分且是不可见的;(2) 您是使用 ShowDialog 显示的该窗体。在这些情况下,需要手动调用 Dispose 来将窗体的所有控件都标记为需要进行垃圾回收。
[/Quote]
+1 MDI 学习了。。
  • 打赏
  • 举报
回复
在以下两种情况下调用 Close 不会释放窗体:(1) 窗体是多文档界面 (MDI) 应用程序的一部分且是不可见的;(2) 您是使用 ShowDialog 显示的该窗体。在这些情况下,需要手动调用 Dispose 来将窗体的所有控件都标记为需要进行垃圾回收。
orochiheart 2012-04-14
  • 打赏
  • 举报
回复
http://www.cnblogs.com/kevinwan/archive/2007/01/16/621869.html

111,086

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧