Использование целочисленного перечисления без преобразования в C #

Добрый день, позвольте» s скажем, у меня есть перечисление

public enum Test : int 
{ 
   TestValue1 = 0, 
   TestValue2, 
   TestValue3 
}

. Почему я не могу использовать такие операторы, как Int32 IntTest = Test.TestValue1 , без приведения, означающего IntTest = 0 ? Было бы полезно, если бы я решил позже добавить еще элементы в перечисление? Думаю, я вынужден использовать Int32 IntTest = (Int32) Test.TestValue1 , что, по моему мнению, должно быть избыточным ... Кроме того, почему я не могу сделать что-то вроде

switch (IntTest)
{
    case (Test.TestValue1) : DoSomething();
                             break;
    case (Test.TestValue2) : DoSomethingElse();
                             break;
    default                : Do Nothing();
}

? Компилятор говорит, что ожидает постоянное значение вместо TestValue1 ... Разве это значение не постоянное?

Большое спасибо.

6
задан Michele Ceo 11 October 2017 в 20:16
поделиться