C# 枚举支持哪些算术运算?令人惊讶的是,我无法通过谷歌、维基百科和计算器找到它。
我可以添加两个枚举值而不进行任何转换吗?将任意常数添加到一个值或减去它? 或者枚举是否保证该类型的值始终是定义的枚举值之一或其位掩码?
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
,这对于严格排序的顺序枚举很有用,但我不能找到任何标准引用,请指点我好吗?
最佳答案
以下运算符可用于枚举类型的值:==
, !=
, <
, >
, <=
, >=
, +
, -
, ^
, &
, |
, ~
, ++
, --
, sizeof
.
关于c# - 枚举值的算术运算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9784024/