0

列挙型定数が一意の整数値にマップされるようにする方法は c# にありますか。

public enum Color
{
None =0,
red = 1,
blue= 2,
white = 3
}

ここで、「白を 3 から 2 に」の数値を変更すると、コンパイル エラーが発生するはずです。

私のプロジェクトでは、列挙型の整数値を定数に関して DB に保存しています。誰かが列挙型に新しい定数を追加した場合のように、列挙型に制約が必要です(例: 黒)。ユーザーは、列挙定数を使用して一意の数値を指定する必要があります。

ありがとう

4

1 に答える 1

3

enum最善の方法は、定義で値を明示的に設定しないことです。定義にコメントをenum追加して、最後にのみ追加するようにします。

例えば:

public enum Color
{
    None,
    red,
    blue,
    white,
    // **NEW ENTRIES MUST ONLY BE ADDED AT THE END OF THE ENUM**
}

または、組み込みのColor構造体とそのToArgb( )メソッドを使用します。または実際にKnownColor列挙。

于 2012-05-09T08:49:39.520 に答える