2010-09-22 124 views

回答

4

这是(myEnum)0产生的价值。例如:

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

然后default(myEnum)myEnum.bar或具有0值的枚举的第一构件是否有与值0

多个成员的值是0如果没有枚举的构件(显式或隐式)赋值0.

+0

谢谢,但如果没有0定义呢?但他们是100,99和1? – 2010-09-22 22:48:10

+0

然后它是0.我相应地更新了我的答案。看到相关的线程:http://stackoverflow.com/questions/529929/choosing-the-default-value-of-an-enum-type-without-having-to-change-values – 2010-09-22 22:49:02

+3

如果没有0定义,值仍然是0.请记住,枚举实际上只是一个整数类型的薄型安全包装器,使您能够按名称引用整型值。 – 2010-09-22 22:51:34

2

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

如果你想default(MyEnum)成为第一个值,你需要像这样定义您的枚举:

public enum MyEnum 
{ 
    First = 0, 
    Second, 
    Third 
} 
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; 
} 
0

拍打到vs2k10这个条目.....

与:

enum myEnum 
{ 
    a = 1, 
    b = 2, 
    c = 100 
}; 



myEnum z = default(en); 

生产:z == 0这可能是也可能不是你的枚举的有效值(在这种情况下,它不是)

因此sayeth视觉工作室2k10