列挙変数は、常に最初の要素にデフォルト設定されるかどうかご存知ですか?
ベストアンサー1
列挙体のどのメンバーが値を表すかです0
。具体的には、ドキュメンテーション:
のデフォルト値は、
enum E
式 によって生成された値です(E)0
。
例として、次の列挙型を見てみましょう。
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
列挙型内のどの要素もG
次に対応しない場合0
:
enum G
{
Foo = 1, Bar = 2, Baz = 3, Quux = 4
}
default(G)
は文字通り を返します0
が、その型は のままですG
(上記のドキュメントで引用されているように、指定された列挙型へのキャスト)。