2011-07-03 32 views
8

在我的應用程序(C#)中,我有很多常量消息被打印到日誌中,呈現給用戶等。 此const消息不應該改變將它們放在外部文件或數據庫中毫無意義。 我的解決方案非常簡單 - 我正在考慮創建一個靜態類並將其命名爲ConstMessages。這個類將只保存大量的公共const字符串變量,這些變量可以在應用程序的任何地方訪問。 如果這種方法有什麼問題,並且如果有更好的方法,您能否提出建議? 謝謝!在代碼中存儲應用程序常量字符串的最佳做法

+1

您正在尋找非推薦的解決方案;您必須使用外部文件(如配置文件'.app'或'.config')來存儲這些消息。 –

+1

如果這些字符串不會改變,爲什麼把它們放在一個類中?看來你期待他們有所改變。 –

回答

6

我會使用readonly而不是const來克服版本問題。

+0

版本問題使用const?怎麼會這樣? – Alxandr

+1

Const是編譯時,而只讀是運行時。更多信息在這裏http://www.shrinkrays.net/code-snippets/csharp/const-vs-readonly-in-csharp.aspx – anivas

+8

@Alxandr:如果您在代碼中的多個位置重用的程序集中使用常量,您將被迫重新編譯使用該程序集的所有客戶端代碼,因爲該值將由編譯器進行硬編碼。使用只讀值時,該值在運行時解析。因此只需插入程序集的新版本就可以使客戶端代碼使用新值。本書中有一個很好的章節:http://www.amazon.com/Effective-Covers-4-0-Specific-Development/dp/0321658701/ref=sr_1_1?ie=UTF8&qid=1309707290&sr=8-1 (第1章:第2項:更喜歡只讀const) –

4

對於簡單的應用程序通常可以使用 - 如果您認爲應用程序有可能需要本地化/支持多種語言,則另一個選項是RESX文件。

相關問題