2014-01-11 11 views
0

我想在我的C#應用​​程序運行中運行名爲frmLogin的登錄表單。我想出了兩種不同的方式來做到這一點,我想知道這兩者中的哪一個是更受歡迎的做法?爲什麼?或者如果他們完全平等?在下面的代碼中,使用Application.Run()的哪種方法是更好的做法?

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

第一種方式:

Application.Run(new frmLogin()); 

方式二:

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

他們會不一樣? –

+0

@SonerGönül那是我的問題。讓我問這個問題的一點是,我用第二種方法爲frmLogin的對象指定了一個名稱。 – Nobody

+2

無關緊要,除非您打算再次參考'_login',以便在表單中執行其他操作。 –

回答

1

沒有區別。存儲表單引用的本地變量以任何方式存在,在第二個片段中它只是沒有名稱。

然而,你並沒有這樣做。你無法確定登錄是否成功。當用戶登錄並關閉窗口時,沒有什麼好結果,你的應用程序停止運行。如果您試圖通過隱藏登錄窗口來解決它,那麼您將很難停止應用程序。

你應該做這樣的代替:

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

還有就是兩者之間沒有功能上的差異。

唯一真正的區別是第二種形式使您能夠在Run方法完成後訪問frmLogin。所以除非你真的有所作爲_login這裏沒有區別

+0

感謝您的明確答案。 – Nobody

相關問題