使用块中的无模式窗体和开放模式窗体的正常关闭.足够
本文关键字:窗体 模式 常关闭 足够 | 更新日期: 2023-09-27 18:31:03
正在开发一个MDI Windows Forms Application。
在欢迎(有点像主页)窗口中,用户可以打开特定窗口来添加或编辑实体,例如订单或客户。 其中每个窗口都在其自己的无模式窗口中打开(作为 MDIChild)。在某些情况下,添加新记录是在模式窗口中完成的。
我没有在无模式窗口上显式执行 Dispose()。 根据调试期间的检查,单击窗体的"关闭"按钮时,设计器.cs文件中的 Dispose() 方法将执行并执行基。调用释放方法。 我认为这是为了理解该表单确实在单击关闭按钮时被处理掉了。
对于对话框窗口,我在 using 块中打开它们,据我了解,当 using 块结束时,它将从窗口上释放。
那么,我的整体理解和方法是否正确?
我做了谷歌这个。似乎有非常强烈的支持者支持不同的方法,因此我有点不确定我的方法是否可以。
感谢您的澄清。
谢谢和问候。
你在 using 块中有变量? 你很富裕。 除非该类包含任何非托管资源。C# 对话框和窗体不是非托管的。C# 中的大多数内容都是托管内存。所以使用应该是足够的。
您有一个使用子句,因此以下内容并不真正适用,但很高兴知道
"IDisposables超出范围时不处理吗?"不。如果 IDisposable 对象是可完成的,这不是一回事,那么它将在垃圾回收时完成。这可能很快,也可能几乎永远不会。
很多讨论应该可以帮助您在这里了解更多信息
C# USING 关键字 - 何时以及何时不使用它?
我目前的理解是,除非您使用非托管资源,否则垃圾回收器或程序的关闭将处理它,如果它决定需要回收内存或程序以稳定状态关闭。