1. ホーム
  2. c#

[解決済み】enum変数のデフォルト値は何ですか?

2022-03-30 06:19:15

質問

enum変数ですが、常に最初の要素がデフォルトになっているかどうか、ご存知の方はいらっしゃいますか?

どのように解決するのですか?

それは、列挙型のどのメンバーであっても、その値を表します。 0 . 具体的には ドキュメント :

のデフォルト値は enum E という式で生成される値です。 (E)0 .

例として、以下のenumを取り上げます。

enum E
{
    Foo, Bar, Baz, Quux
}

デフォルト値をオーバーライドせずに default(E)Foo が最初に発生する要素であるためです。

しかし、それは 常に という場合があります。 0 は最初のメンバーで表現されます。例えば、こうすると

enum F
{
    // Give each element a custom value
    Foo = 1, Bar = 2, Baz = 3, Quux = 0
}

印刷 default(F) を実行すると Quux ではなく Foo .

enumの要素が一つもない場合 G に対応する 0 :

enum G
{
    Foo = 1, Bar = 2, Baz = 3, Quux = 4
}

default(G) は文字通り 0 として残りますが、その型は G (上記のdocsで引用されているように、与えられたenum型へのキャスト)。