所以我有一个标志Enum
public Enum test
{
test1 = 1,
test2 = 2,
test3 = 4,
etc.
}
如何测试那一位,只设置一位?
我以前100%完成了这项工作,但我的思绪不在于此!
答案 0 :(得分:13)
要检查数字中是否只设置了一个位,该数字必须(根据定义)为2的幂。因此,您可以使用以下内容进行测试:
int intVal = ((int)myEnumFlags);
bool singleBitIsSet = intVal != 0 && (intVal & (intVal-1)) == 0;
我最喜欢的参考资料: