c#枚举支持哪些算术运算?令人惊讶的是,我无法通过谷歌,维基百科和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?
}
Run Code Online (Sandbox Code Playgroud)
我知道按位操作,支持它们表示标志似乎是合理的.
维基百科告诉我们,我的样本也允许_d - 1或者WeekDays.Tue - WeekDays.Mon,对于严格排序的顺序枚举可能有用,但我找不到任何标准参考,请问,请指点我?
以下运算符可以在枚举类型的值可以使用:==,!=,<,>,<=,>=,+,-,^,&,|,~,++,--,sizeof.
如果要使用算术运算,请不要使用enums,而使用numbers。
Enums是数值的命名约定,使它们更易于阅读并允许将它们组合起来。这实际上就是您在互联网上找不到任何相关内容的原因,因为它不应该用 来完成enums。
| 归档时间: |
|
| 查看次数: |
4804 次 |
| 最近记录: |