我发现有或没有标志属性,如果我定义了以下枚举,我可以执行位操作
enum TestType
{
None = 0x0,
Type1 = 0x1,
Type2 = 0x2
}
我想知道为什么我们需要标志属性?
最佳答案
C会以同样的方式对待他们,但C并不是唯一的消费者:PropertyGrid
将以不同的方式呈现以允许组合XmlSerializer
将接受/拒绝基于此标志的分隔组合Enum.Parse
同样(从字符串),枚举的.ToString()
行为也将不同
显示或处理该值的许多其他代码将对它们进行不同的处理
不过,更重要的是,它是其他开发人员(和代码)的意图表达;这意味着要视为组合,而不是排他的值。