Я бы сказал, что это потому, что вы не можете применить оператор «<< =» к операндам типа «SomeEnum» и «int» ».Таким образом, вместо этого вы должны выполнить довольно менее элегантный </p>
var en = SomeEnum.A;
en = (SomeEnum)((int)en << 1);
, который явно выполняет преобразование типа или, если вы предпочитаете, можете подождать, пока <<=
будет выполнен или неявное приведение Enum
кОператор int для реализации, ни один из которых не представляется вероятным, это не то, что должно быть сделано случайно.
Вы можете написать свой собственный метод расширения, чтобы добиться того же самого, но я думаю, что для обработки потребуется некоторое отражениеразличные базовые типы Enum