Ho un enum
con valore personalizzato per solo una parte della listaEnum con i valori specificati per solo alcuni dei membri
public enum MyEnum
{
FirstValue,
SecondValue,
ThirdValue,
ForthValue = 1,
FifthValue = 2
}
Quando ho provato strina name = (MyEnum)2;
nome era ThirdValue
.
Ma quando ho cambiato il enum
a
public enum MyEnum
{
FirstValue = 3,
SecondValue,
ThirdValue,
ForthValue = 1,
FifthValue = 2
}
In strina name = (MyEnum)2;
nome era FifthValue
.
Il compilatore (sto utilizzando Visual Studio 2012) inizializza i valori personalizzati solo se il primo ha valori personalizzati?
E se ThirdValue
ha ottenuto il valore predefinito 2 nel primo esempio, come mai non si è verificato alcun errore in FifthValue = 2
?
I valori dell'esempio iniziale sarebbe 0, 1, 2, 1, 2. Sia 'ThirdValue 'e' FifthValue' corrisponde al valore intero 2, in quanto tale, il debugger sta solo selezionando uno dei valori per te. –