代码之家  ›  专栏  ›  技术社区  ›  Joan Venge

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

  •  4
  • Joan Venge  · 技术社区  · 14 年前

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

    MyEnum myEnum = default(MyEnum);
    

    会是第一件吗?

    4 回复  |  直到 14 年前
        1
  •  5
  •   Richard Cook    11 年前

    (myEnum)0

    enum myEnum
    {
      foo = 100
      bar = 0,
      quux = 1
    }
    

    default(myEnum) myEnum.bar 或者,如果有多个值为0的成员,则为值为0的枚举的第一个成员。

    价值是 0 如果没有为枚举的任何成员赋值(显式或隐式),则值为0。

        2
  •  2
  •   Bennor McCarthy    14 年前

    理解您的问题有点困难,但是枚举的默认值是零,这可能是枚举的有效值,也可能不是。

    default(MyEnum) 要成为第一个值,需要如下定义枚举:

    public enum MyEnum
    {
       First = 0,
       Second,
       Third
    }
    
        3
  •  2
  •   JaredPar    14 年前

    default(T) 相当于说 (T)0 对于泛型参数或具体类型 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;
    }
    
        4
  •  0
  •   Muad'Dib    14 年前

    把这个放进vs2k10。。。。。

    使用:

     enum myEnum
     {
      a = 1,
      b = 2,
      c = 100
     };
    
    
    
     myEnum  z = default(en);
    

    生产: z == 0

    VisualStudio2K10如是说