2011-07-03 5 views
8

私のアプリケーション(C#)には、ログに出力されたり、ユーザーに提示されるconstメッセージがたくさんあります。 このconstメッセージは、それらを外部のファイルやDBに置くことはありません。 私のソリューションは非常に簡単です - 私は静的クラスを作成し、それをConstMessagesと命名することを考えています。このクラスは、アプリケーション内のどこからでもアクセスできる多くの公開const文字列変数を保持します。 その方法に何か問題があった場合や、より良い方法がある場合はお勧めできますか? ありがとう!コード内にアプリケーションのconst文字列を格納するためのベストプラクティス

+1

推奨されないソリューションを探しています。これらのメッセージを保存するには外部ファイル(設定ファイル '.app'や' .config'など)を使わなければなりません。 –

+1

なぜこれらの文字列が変更されない場合、それらを1つのクラスに入れますか?あなたのためにいくつかの変更を期待しているようです。 –

答えて

6

私は、バージョンの問題を乗り越えるために、constの代わりにreadonlyを使用します。

+0

constを使用したバージョン管理の問題?どうして? – Alxandr

+1

Constはコンパイル時ですが、readonlyは実行時です。詳細はこちら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ファイルがあります。

関連する問題