2014-01-22 46 views
2

我正在開發一個winforms應用程序,它有一個登錄名,我想跟蹤狀態(即登錄或註銷)。我已經看到了SO like this one譴責使用公共或全局變量這樣其他答案:在c#winforms程序中跟蹤程序狀態(登錄等)的最佳方式

public static bool LoggedIn; 

private void btnLogin_Click(object sender, EventArgs e) 
{ 
    //do some stuff 
    LoggedIn = true; 
} 

那麼什麼是跟蹤程序的用戶狀態或其他變量的最佳方式?他們應該是廣泛可訪問的程序。非常感謝!

+0

我想你應該使用枚舉來設置和獲取用戶的當前狀態。 – Max

+0

請解釋爲什麼你認爲你需要一個「公共或全局變量」來跟蹤這個。其他班爲什麼要照顧?如果他們錯了會發生什麼?課堂休息了嗎?如果這是問題,請修復您的課程。如果只有幾個類需要知道,請將數據傳遞給該類或使其成爲「protected」或「internal」。 –

+0

@DourHighArch我總是想知道用戶是否已經登錄或註銷,並且我需要以不同的形式訪問這些信息。我知道這樣做的唯一方法是創建一個公共變量並將信息存儲在那裏。 – gnarlybracket

回答

0

,將工作,但在我看來,作爲不好的做法,更好的做法是使用一個singleton類,將管理所有用戶的功能,只是覺得如果你正在使用線程和一個線程退出等正在登錄,另一個正在嘗試將某些內容記錄到db。 Singleton是一種線程安全的模式,會給你很大的靈活性。

相關問題