c# - 枚举值的算术运算

标签 c# .net enums

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 - 1WeekDays.Tue - WeekDays.Mon,这对于严格排序的顺序枚举很有用,但我不能找到任何标准引用,请指点我好吗?

最佳答案

以下运算符可用于枚举类型的值:== , != , < , > , <= , >= , + , - , ^ , & , | , ~ , ++ , -- , sizeof .

关于c# - 枚举值的算术运算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9784024/

相关文章:

c# - 同一功能中的多个锁

c# - 通过指定多个条件在通用列表中查找项目

.net - 类型化数据集的缺点是什么

c# - Entity Framework .include 性能问题

.net - 默认为 Visual Studio 2012 中的每个项目激活代码分析

c# - 围绕其自身的轴旋转 3D 图元

c# - 从 web 用户控件调用父 aspx 页面的函数

c# - 根据枚举值获取枚举名称

asp.net-mvc - MVC - 更改下拉菜单中的默认文本

java - 为什么大多数枚举值在声明中以 BUTT 说明符结尾?