2017-08-07 20 views
-4

私は列挙型のように機能しますが、要素を追加したり削除したりする可能性があるソリューションが必要です。 私たちは、すべてのプロジェクトに共通するいくつかのデフォルト値を提供する必要があるベースソリューションを持っていますが、ベースを拡張するすべてのプロジェクトも独自の追加や削除ができる必要があります。enumの代わりにC#

例:

ベースの製品:

public static class Constants 
{ 
    public enum Food 
    { 
     Carrot, 
     Meat, 
     Cheese 
    } 
} 

プロジェクトの拡張子:

public static class ProjectConstants 
{ 
    // Remove meat from Food 
    // Add Fish to Food 
} 

だから今、私はちょうどリストを使用して検討しています:

public static List<string> Food = new List<string>(new string[] 
    { 
     "Carrot", 
     "Meat", 
     "Cheese", 
    }); 

これでしょう許す私はプロジェクトの要素を追加したり削除したりできます。しかし、文字列のリストが原因大文字と小文字を区別し、スペルミスによりvunerable感じ、さらに、私は、使用する機会を逃す:

if (Meat < Carrot) 

は、何か良い解決策はありますか?いつか強力で堅牢な列挙型の方法と要素の追加と削除の一般的な方法を組み合わせることはできますか?

+2

「肉<キャロット」の結果はどうですか? – EpicKip

+1

肉を使用する<ニンジン>は恐ろしいです... ugh。と確かに '肉>ニンジン'? – DavidG

+0

そして、この値をコレクションから削除した後、 'Food.Meat'を使うコードはどうなりますか? –

答えて

-2

これはあなたに役立ちますDynamic enum in C#
コンパイル時のチェックが失われるため、辞書オプションは除外されています。

編集: リンクをパーマリンクに変更しました。

+1

このリンクは質問に答えるかもしれませんが、ここでは答えの重要な部分を含めて参考にしてください。リンクされたページが変更された場合、リンクのみの回答は無効になります。 - [レビューから](/レビュー/低品質の投稿/ 16958903) –