2011-12-30 4 views
4

enum値が特定のグループに属しているかどうかを判断できるようにします。列挙型のグループのenumメンバーですか?

[Flags] 
public enum Animals 
{ 
    Dog = 1, 
    Cat = 2, 
    WildAnimal = Dog | Cat, 
    Fly = 4, 
    Bee = 8, 
    Insect = Fly | Bee 
} 

public static bool IsInsect(Animals animals) 
{ 
    return Animals.Insect.Qualifies(animals); 
} 

public static bool Qualifies(this Animals groupName, Animals value) 
{ 
    //Is there a bitwise operation for it? 
} 

答えて

2
if ((groupName & value) != 0) 
    ... 
0

使用「と」共通のビットをチェック:description属性またはカスタムは、個々の列挙型のオフ属性

return (groupName & value) > 0; 
+0

がコンパイルできないこと:私はと題した私のブログ上の列挙型で、このような使い方の例を提供しますビットごとに適用することは不可能です。 – Adam

+0

@codeparkle bummer。一定。 –

+0

これは私に不思議なことです。正しい実装は '> 0'か'!= 0'ですか? – Adam

関連する問題