.NET 的 Dispose 方法

来源:百度知道 编辑:UC知道 时间:2024/06/28 07:31:02
在某一个按钮的单击事件中有如下语句:
Form1 frm = new Form1();
frm.ShowDialog();
请问该代码段之后是否需要加入下面的语句?
frm.Dispose();

Dispose - 清除/释放
  Dispose表示将当前资源关闭,以Connection数据库连接为例,如果是连接状态,调用Dispose之后,该连接会关闭并被销毁,打上回收标记,后续不可再直接调用该实例。
  Dispose(bool disposing)不是CRL提供的一个机制,而仅仅是一个设计模式(作为一个IDisposable接口的方法),它的目的是让供类对象的使用者(客户)在使用完类对象后,可以及时手动调用非托管资源的释放,无需等到该类对象被垃圾回收那个时间点。这样类的开发者就只需把原先写在Finalize的释放非托管资源的代码,移植到Dispose(bool disposing)中。

那个是释放你的窗体所占用的物理内存,如果你不用了,可以释放。不过C#有垃圾回收机制,如果你的窗体关闭,则它会自动释放。不过Dispose()可以养成你良好的编程习惯

.NET是微软下一代的操作平台,它允许人们在其上构建各种应用方式,使人们尽可能通过简单的方式,多样化地、最大限度地从网站获取信息,解决网站之间的协同工作,并打破计算机、设备、网站、各大机构和工业界间的障碍--即所谓的“数字孤岛”,从而实现因特网的全部潜能,搭建起第三代互联网平台。

dispose是销毁的意思,

如果不dispose,frm就会一直存在,这样如果你以后再想用frm还可以用,但是会一直占用资源.

如果dispose了,frm就被销毁了,内存中就没有frm了.一个对象

如果你确定以后再也不会用到,那就最好销毁.否则当对象多的时候(比如说100万个,夸张点),

如果前面的不销毁,后面电脑肯定要崩溃了.

也可以使用using语句哦
using( Form1 frm = new Form1())
{
hide(); //隐藏主窗体
frm.ShowDialog();
show(); //显示主窗体
}
这样的话就不用写frm.Dispose();

dispose() 方法 其实是调用析构函数 析构函数一般是CLR运行库自