Roy*_*mir 1 .net c# enums .net-4.0
二进制操作非常有用.这样我就可以 | ^ &
按顺序发出新的序列.
但是,有时会有一些Enum
没有base 2
附加值的值(或者根本没有值).
即:
我想Enhance || derive|| attach
重视每个条目的Enum(如果可能).
所以我将能够做到:
if (MyListItemType== Header |Footer ) ...
Run Code Online (Sandbox Code Playgroud)
可能吗 ?或者是否有任何棘手的工作?
我想加强|| 获得|| 将值附加到枚举(如果可能)到每个条目.
你不能这样做(没有重新定义枚举).但是当它在代码中你没有拥有时,就结束了.已经存在依赖于编号的代码,更改int值会破坏该代码.
但这通常意味着Enum并不是一个有点集,所以试图将它作为一个可能并不是一个好主意.
这是代码创建者的设计决策.
看看你的示例列表:
var item = ListItemType.Header | ListItemType.Footer | ListItemType.SelectedItem;
Run Code Online (Sandbox Code Playgroud)
可以同时item
真的是标题,页脚和选定的项目吗?这是一个互斥选项列表.
你想使用标志枚举:
[Flags]
enum Days2
{
None = 0x0,
Sunday = 0x1,
Monday = 0x2,
Tuesday = 0x4,
Wednesday = 0x8,
Thursday = 0x10,
Friday = 0x20,
Saturday = 0x40
}
class MyClass
{
Days2 meetingDays = Days2.Tuesday | Days2.Thursday;
}
Run Code Online (Sandbox Code Playgroud)