2010-09-22 168 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