我正在调整此来源的编码风格指南: http://www.csharpfriends.com/articles/getarticle.aspx?articleid=336
在“5.2初始化”下,建议如下:
如果初始化对话框,请尝试使用 使用声明:
使用(OpenFileDialog openFileDialog = 新的OpenFileDialog()){}
这种风格选择的原因是什么?
答案 0 :(得分:4)
您可能只需要短期对话即可立即输入。因此,使用using语句,您可以在完成所需资源(释放它)后释放资源。
Using只是在使用后调用dispose方法的语法糖。
答案 1 :(得分:3)
OpenFileDialog
实现了IDisposable
接口。鉴于对话通常具有特定方法的生命周期,using
块确保它们将被正确处理
using (OpenFileDialog dialog = new OpenFileDialog()) {
// Some setup work
...
return dialog.ShowDialog();
}
答案 2 :(得分:3)
这不是最好的例子,OpenFileDialog在对话框关闭时已经处理了所有资源。它是一个组件,而不是一个控件。这是一个实现细节。通常,调用ShowDialog()会不自动处理表单对象。与Show()不同。这是必要的,以便您可以检索对话框结果而不必担心ObjectDisposedException。现在重要的是你在这样做之后自己处理它。
使用语句变得容易。
答案 3 :(得分:1)
你会这样做是出于同样的原因,你使用任何using构造来确保对象被处置。 OpenFileDialog实现了IDisposable,因此由消费者决定是否放置实例并且using构造确保在对象上调用.Dispose。
答案 4 :(得分:0)
c#语言中的using语句 允许我们定义一个范围 物体寿命。这个说法 获取指定的资源, 最后执行语句 调用的Dispose()方法 要清理它。
答案 5 :(得分:0)
using
using
:定义一个范围,在该范围之外将放置一个或多个对象。
我猜这个定义告诉所有事情。
要获得更好的理解,请阅读msdn上的using Statement
答案 6 :(得分:0)
其他答案中未提及的一个关键点是所有对话框始终是模态的,这意味着与您可能显示的常规表单不同,模式对话框将阻止执行,直到表单消失。这意味着在显示对话框后执行返回给你的时候,对话框已经消失了!因此,现在已经是处理它的时候了,这就是为什么建议你使用usings
语句。