C# 枚举设置Flags后的使用
带有Flags特性进行或运算需要让多个或运算后不能与现有Enum值重合
[Flags]
public enum DictionaryType
{
Unknow = 1,
Type = 2,
Purpose = 4,
Color = 8,
}
合并
var dic=DictionaryType.Type | DictionaryType.Color;
判断是否存在
dic.HasFlag(DictionaryType.Type);
或者
var isHava = (dic & DictionaryType.Type) != 0;
去掉一个值
dic = dic & (~DictionaryType.Type);
取反一个值
var isHava = (dic & DictionaryType.Type) != 0;
if(isHava)
{
dic = dic & (~DictionaryType.Type);
}
else
{
dic = dic | DictionaryType.Type;
}