6

これは、コーディングのベスト プラクティスに関する質問です。.NET アプリケーションで文字列と値のハードコーディングを回避する最善の方法についてのコンセンサスを知りたいです。私が以前働いていた場所でこれまでに見たもの:

  • リソース .resx ファイルの使用
  • これらの値と文字列を App.config または web.config に保存する
  • 静的クラス ApplicationStrings を作成し、そこにすべての文字列と値を宣言します。

    public static class ApplicationStrings
    {
        #region constants
        public const string APPLICATION_NAME = "X";
        public const string APPLICATION_RESOURCEMANAGER_NAME = "ResourceManagerX";
        public const string APPLICATION_DEFAULT_LOGFILENAME = "log.txt";
    }
    

しかし、3番目の方法ではなく、別のハードコードですか? このようなクラスがあることに意味はありますか?利点は、すべての文字列が 1 か所にあることですが、それは本当にハードコードを回避しているのでしょうか?

また、この状況で他の習慣を身につけた場合は、遠慮なく投稿してください。

4

4 に答える 4

5

主な利点は、実際にすべての文字列を 1 か所にまとめ、そこで変更するだけでプログラム全体を更新できることです。プログラムのさまざまな部分で同じ文字列が使用されていて、1 つのインスタンスが更新され、別のインスタンスが更新されない場合は、問題があります。ちなみに、これはすべてのリテラルに当てはまります。

そして、リソース ファイルには、i18n と l10n の利点があります。あなたがそれを必要とするなら、しかし多くの大規模なアプリケーションはそうすべきです。

于 2011-07-16T22:38:50.550 に答える
1

一般に、構成可能なすべてのデータを中央の構成ファイルに保存して、すべてのデータを 1 か所に保管し、他のアプリと共有できるようにすることをお勧めします。

于 2011-07-16T22:40:21.160 に答える
1

私の意見では、ApplicationSettings は、設定が (i) 真に定数であり、(ii) もちろん真に公開されている場合にのみ役立ちます。これらのケースのいずれかが当てはまらない場合、これは理想的ではなく、選択は .config ファイル .resx に戻ります

于 2011-07-16T22:46:01.840 に答える
0

まあ、私は ApplicationStrings が良い解決策だと思います

于 2011-07-16T22:39:20.987 に答える