c # enum of long values ​​

Мне было интересно, почему это объявление:

public enum ECountry : long
{
    None,
    Canada,
    UnitedStates
}

требует преобразования любого из его значений?

long ID = ECountry.Canada;
// Error Cannot implicitly convert type 'ECountry' to 'long'.
// An explicit conversion exists (are you missing a cast?)

И есть ли способ получить длинное значение непосредственно из перечисления, помимо преобразования?

Это тоже не сработает, например:

public enum ECountry : long
{
    None = 0L,
    Canada = 1L,
    UnitedStates=2L
}
18
задан Matthew Strawbridge 4 April 2014 в 06:39
поделиться