在下面的代码中使用Application.Run()的哪种方式更好?

时间:2014-01-11 14:37:16

标签: c# winforms

我想在我的C#应用​​程序运行中运行名为frmLogin的登录表单。我想出了两种不同的方法来做到这一点,我想知道这两种方法中的任何一种是否更为优选?为什么?或者如果他们完全平等?

另外,如果有比这更好的做法,那是什么?

第一种方式:

Application.Run(new frmLogin());

第二种方式:

frmLogin _login = new frmLogin();
Application.Run(_login);

2 个答案:

答案 0 :(得分:3)

两者之间没有功能差异。

唯一真正的区别是第二种形式使您能够在frmLogin方法完成后访问Run。所以,除非你真的对_login做了什么,否则这里没有区别

答案 1 :(得分:1)

没有任何区别。存储表单引用的局部变量存在于其中,在第二个片段中它只是没有名称。

然而,你没有做到这一点。您实际上无法判断登录是否成功。当用户登录并关闭窗口时,没有任何好处发生,您的应用程序将停止运行。如果你试图通过隐藏登录窗口来解决它,那么你将很难停止应用程序。

你应该这样做:

using (var dlg = new frmLogin()) {
   if (dlg.ShowDialog() != DialogResult.OK) return;
}
Application.Run(new frmMain());