使用default关键字的枚举的默认值?

时间:2010-09-22 22:44:25

标签: c# .net enums

任何人都知道使用默认关键字的枚举的默认值,如:

MyEnum myEnum = default(MyEnum);

这是第一项吗?

4 个答案:

答案 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)0enum。无论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