私は.NET 4でHasFlagを使用できることを知っています
.NET 3.5 で次の代替手段はありますか?
if ((enumVar & EnumType.ValueOne) == EnumType.ValueOne)
{
// someMethod(1) or someMethod(EnumType.ValueOne)
}
if ((enumVar & EnumType.ValueTwo) == EnumType.ValueTwo)
{
// someMethod(2) or someMethod(EnumType.ValueTwo)
}
if ((enumVar & EnumType.ValueThree) == EnumType.ValueThree)
{
// someMethod(3) or someMethod(EnumType.ValueThree)
}
if ((enumVar & EnumType.ValueFour) == EnumType.ValueFour)
{
// someMethod(4) or someMethod(EnumType.ValueFour)
}
...列挙型の各値についてなど?これを達成するには、 for..each ループを使用できる必要があります。ここで、 someMethod への引数はループのインデックスですか?
[Flags]
enum EnumType
{
ValueOne = 1
, ValueTwo = 2
, ValueThree = 4
, ValueFour = 8
}
編集:受け入れられた回答を見る価値があるだけで、残りのコメント/回答は安全に無視できます。