使用 default 关键字的枚举的默认值?
任何人都知道使用默认关键字的枚举的默认值,例如:
MyEnum myEnum = default(MyEnum);
它会是第一项吗?
Anyone knows the default value for enums using the default keywords as in:
MyEnum myEnum = default(MyEnum);
Would it be the first item?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
它是由
(myEnum)0
生成的值。例如:那么
default(myEnum)
将是myEnum.bar
或如果有多个值为 0 的成员,则为枚举的第一个值为 0 的成员。如果没有为枚举成员分配(显式或隐式)值 0,则为
0
。It is the value produced by
(myEnum)0
. For example:Then
default(myEnum)
would bemyEnum.bar
or the first member of the enum with value 0 if there is more than one member with value 0.The value is
0
if no member of the enum is assigned (explicitly or implicitly) the value 0.理解你的问题有点困难,但是枚举的默认值为零,这可能是也可能不是枚举的有效值。
如果您希望 default(MyEnum) 成为第一个值,则需要像这样定义枚举:
It's a bit hard to understand your question, but the default value for an enum is zero, which may or may not be a valid value for the enumeration.
If you want
default(MyEnum)
to be the first value, you'd need to define your enumeration like this:表达式
default(T)
相当于表示泛型参数或具体类型的(T)0
,它是一个enum
。无论enum
是否定义了数值为 0 的条目,情况都是如此。The expression
default(T)
is the equivalent of saying(T)0
for a generic parameter or concrete type which is anenum
. This is true whether or not theenum
defines an entry that has the numeric value 0.将其放入 vs2k10 .....
中:
产生:
z == 0
这可能是也可能不是您的枚举的有效值(在本例中,它不是),因此 Visual Studio 2k10 说
slapped this into vs2k10.....
with:
produces:
z == 0
which may or may not be a valid value of your enum (in this case, its not)thus sayeth visual studio 2k10