我正在使用此代码来确定是否设置了特定标志。
是否有任何简短的表达式(没有重复 someFlag.flag1 两次)?

[Flag]
enum someFlag
{
    flag1 = 0x0,
    flag2 = 0x2,
    flag3 = 0x4
}

if ((someFlag & someFlag.flag1) == someFlag.flag1)

如果没有,我会创建一个扩展方法。任何想法?

最佳答案

如果您使用的是 .NET4,那么您可以使用内置的 HasFlag 方法。

if (yourValue.HasFlag(someFlag.flag1)) DoSomething();

在该框架的早期版本中,您已经拥有的一切都很好(我认为这正是 HasFlag 在幕后所做的)。

关于c# - 确定是否设置了特定标志的最佳表达式是什么,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5816582/

10-11 02:04