未引用与引用的对象使用

时间:2017-10-26 08:25:17

标签: c# forms winforms

我有一个案例,我有一个表格" MyForm.cs"我已经与设计师一起创建和设置。我需要它只是告诉用户一个错误,并在他点击它之后#34; OK"表单关闭的按钮,我再也不需要了,除非发生相同的错误,这很少见(这是一个处理错误)。

我可以用两种方式展示表格:
未引用
new MyForm().ShowDialog();

引用
MyForm myForm = new MyForm();
myForm.ShowDialog();

由于我不会重复使用表单,我认为不需要给它起一个名称,最好不要使用未引用的语法?

使用一个而不是另一个有什么好处吗?

1 个答案:

答案 0 :(得分:3)

您所谓的“匿名”只是一种类型的实例,当您完成该实例时,您将丢弃该引用。如果您确定不对实例执行任何操作,则可以执行此操作。在您的情况下,您需要在表单上调用Dispose,这就是为什么抛弃参考是一个坏主意。您肯定需要引用要处理的实例。从MSDN开始:

  

如果使用表格显示表单,将自动调用Dispose   显示方法。如果使用另一种方法,如ShowDialog或表单   永远不会显示,你必须在你的内部打电话给自己   应用

如果在另一方面,您可以调用ShowDispose - 方法会在完成时自动调用,因此您可以抛弃该引用。

所以你可以这样写:

using(var f = new MyForm())
{
    f.ShowDialog(...);
    // do something with the form
}

除了以上内容之外,将引用存储到变量中总是好主意,因为它提高了可读性。这是您的代码的每个用户都能理解语句在具有描述其用途的明确名称时所执行的操作。