【发布时间】:2017-09-12 07:07:26
【问题描述】:
我有以下枚举需要根据客户选择进行验证
[Flags]
enum Colour
{
Black = 1,
Blue = 2,
Green = 4,
Yellow = 8
}
var isValid = Enum.IsDefined(typeof(Colour), 5);
如果 5 是有效值,为什么返回 false (Colour.Black | Colour.Green)
【问题讨论】:
-
您是否希望调用生成所有可能的组合?它只检查那些实际定义的。
-
5 不是枚举中定义的值。仅当您有一个值为 5 的条目时才为真。
-
好的。那怎么检查呢?
-
5 = 4 + 1,检查是否定义了4并检查是否定义了1。
-
@codejunkie - 那么您面临的实际问题是什么?关于十几个枚举