同じ整数に対して.NET
複数の値を持つことができますか?enum
例えば。
public enum PersonGender
{
Unknown = 0,
Male = 1,
Female = 2,
Intersex = 3,
Indeterminate = 3,
NonStated = 9,
InadequatelyDescribed = 9
}
C#では、これはC#言語仕様、バージョン4に従って許可されています。セクションではその可能性について明示的に言及して1.10 Enums
いませんが、セクションの後半で次のように表示されます。14 Enums, 14.3
複数
enum
のメンバーが同じ関連値を共有する場合があります。例enum Color { Red, Green, Blue, Max = Blue }
は、
enum
2つのenum
メンバー(Blue
およびMax
)が同じ関連付けられた値を持つを示しています。
それはうまくいきます。あなたが投稿したコードにはまったく問題はありません。それは問題なくコンパイルされ、コードで動作します。
PersonGender.NonStated == PersonGender.InadequatelyDescribed
この質問に関連するStackOverflowの投稿を見つけました。これがどのように機能するかについては非常に賢明な議論があると思います。一意でない列挙値
さて、これはあいまいな(したがって不適切な)列挙型の使用であるというのが私の意見であると付け加えるかもしれません。他の誰かがそれを読んで意味をなすコードを書くことは重要です、そしてこの場合、私はこの列挙型によって延期されるでしょう。
コンテキストで列挙型を使用するのは適切ではないことをお勧めします。代わりに、目的を解決できるクラスとメソッドを作成できます。あなたのクラスでこのようなもの: -
class A
{
static readonly ABCD= new Dictionary<int,string>
{
{ 1, "X" },
{ 2, "X" },
{ 3, "Y" }
{ 4, "Y" }
}
}