[英]arithmetic operations on enum values
c#枚举支持哪些算术运算? 令人惊讶的是,我既无法通过Google也无法通过Wikipedia和stackoverflow找到它。
我可以在不进行任何强制转换的情况下添加两个枚举值吗? 在值上加上或减去任意常数? 还是枚举确保该类型的值始终是已定义枚举值或其位掩码之一?
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?
}
我知道按位运算,支持它们表示标志似乎是合理的。
Wikipedia告诉我们,我的示例还允许_d - 1
或WeekDays.Tue - WeekDays.Mon
,这对于严格排序的顺序枚举很有用,但是我找不到任何标准参考,请给我指出吗?
以下运算符可用于枚举类型的值: ==
, !=
, <
, >
, <=
, >=
, +
, -
, ^
, &
, |
, ~
, ++
, --
, sizeof
。
如果要使用算术运算,请不要使用enums
,而应使用numbers
。 Enums
是数字值的命名惯例,以使它们更易于阅读并允许将它们组合使用。 实际上,这就是您在互联网上找不到任何相关信息的原因,因为它不应该用enums
来完成。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.