任何人都知道使用默认关键字的枚举的默认值,如:
MyEnum myEnum = default(MyEnum);
这是第一项吗?
答案 0 :(得分:5)
这是(myEnum)0
产生的价值。例如:
enum myEnum
{
foo = 100
bar = 0,
quux = 1
}
如果有多个成员的值为0,那么default(myEnum)
将是myEnum.bar
或枚举的第一个成员,其值为0。
如果枚举的任何成员(显式或隐式)未赋值0,则值为0
。
答案 1 :(得分:2)
理解你的问题有点难,但枚举的默认值为零,这可能是也可能不是枚举的有效值。
如果您希望default(MyEnum)
成为第一个值,则需要像这样定义枚举:
public enum MyEnum
{
First = 0,
Second,
Third
}
答案 2 :(得分:2)
表达式default(T)
相当于对通用参数或具体类型(T)0
说enum
。无论enum
是否定义具有数值0的条目,都是如此。
enum E1 {
V1 = 1;
V2 = 2;
}
...
E1 local = default(E1);
switch (local) {
case E1.V1:
case E1.V2:
// Doesn't get hit
break;
default:
// Oops
break;
}
答案 3 :(得分:0)
把它打成了vs2k10 .....
使用:
enum myEnum
{
a = 1,
b = 2,
c = 100
};
myEnum z = default(en);
产生:z == 0
,它可能是或不是你的枚举的有效值(在这种情况下,它不是)
因此说视觉工作室2k10