2010-09-13 64 views
0

這可能看起來像一個愚蠢的話題,但我試圖學習一些很好的編碼實踐。Windows.Forms中的全局變量

我正在製作一個windows.forms應用程序,並且我已經達到了一點,我的部分Form類有7個全局變量(及其相應的屬性)聲明和使用 - 僅舉幾例:一個來確定應用程序是否註冊,我需要在許多事件中訪問的Settings對象,Logger對象等。

這是錯誤的編碼嗎?我的意思是,可以聲明一堆全局變量並在各種事件處理程序/方法中使用它們,還是有一些更好的做法,我應該重新考慮我的代碼,以避免出現它們?

我在這個應用程序中還有很多工作要做,所以它現在處於第一階段,而且我的編碼風格看起來最終會有超過20個全局變量。

+0

取決於您的方案。舉一些例子,你正在努力達到的目標,人們將能夠提供幫助。 – Aliostad 2010-09-13 19:53:16

+0

感謝您的評論,我正在嘗試創建基於geckofx的瀏覽器。每當我有一個對象(例如我的Settings類的實例)需要在多個事件處理程序中進行訪問時,我將它聲明在Form類的頂部,我擔心最終會有十幾個這樣的對象在那裏。 – 2010-09-14 12:46:44

回答

1

您可能會考慮添加App.config文件並將其用於您的全局設置(例如記錄器設置等)。這種方法的一個優點是您可以更改這些設置並重新啓動應用程序,而無需更改代碼。

您可以在App.config中添加鍵/值對:

<appSettings> 
    <add key="YourKey" value="YourValue"/> 
</appSettings> 

和代碼訪問它們:

string yourValue = ConfigurationManager.AppSettings["YourKey"]; 

執行正確的分析(如Int32.TryParse(..) )你可以在那裏存儲數據字符串。

+0

謝謝,這將使我擺脫一些只讀的int變量。 – 2010-09-14 12:47:24