Арифметические операции над перечислимыми значениямиC#

Место общения программистов C#
Anonymous
Арифметические операции над перечислимыми значениями

Сообщение Anonymous »

Какие арифметические операции поддерживаются перечислениями C#? Удивительно, но мне не удалось найти его ни в Google, ни в Википедии, ни в stackoverflow.

Могу ли я добавить два значения перечисления без приведения? Добавить к значению произвольную константу или вычесть ее?
Или enum гарантирует, что значение этого типа всегда является одним из определенных значений перечисления или их битовой маской?

Код: Выделить всё

class ... {...
enum WeekDays : byte { Sun = 1, Mon = 2, Tue = 3, /* and so on*/ Sat = 7 };
public static bool IsWeekend (WeekDays _d) {
/// Can I be sure here that _d has value from 1..7? May it be any of 0..255?
}
Я знаю о побитовых операциях. Кажется разумным поддерживать их для представления флагов.

Википедия сообщает нам, мой образец также допускает _d - 1 или WeekDays.Tue - WeekDays.Mon, что может быть полезно для строго упорядоченных последовательных перечислений, но я не могу найти какую-либо стандартную ссылку, не могли бы вы указать мне?

Подробнее здесь: https://stackoverflow.com/questions/978 ... num-values

Вернуться в «C#»