c# – 如何有效地验证表示标记枚举的整数?

考虑为按位运算设计的FileAttributes枚举.我创建了一个系统,用户可以在其中选择一些复选框来确定文件的状态.文件可以是ReadOnly和System.因此,该值将为5(对于ReadOnly为1,对于4个System为4).

如何验证整数是否为有效的FileAttributes枚举?

我已经看到了这些问题,但它们并没有帮助我,因为它们不适用于bitwised(标记,组合)值.

Check that integer type belongs to enum member
Is there a way to check if int is legal enum in C#?

解决方法:

>在所有合法值上计算累积按位“或”(可能使用Enum.GetValues)
>计算“testValue& ~allValues”
>如果它不为零,那么通过组合合法标志就不可能形成当前值

上一篇:redis源码分析之networking.c


下一篇:c# – 最佳标志值(提示与良好实践)