コードインスペクション: [Flags] 属性が付与されていない列挙型へのビット演算
列挙型が単一の個別の値のセットではなく ビットフラグで表される選択肢の組み合わせとして使用されている場合は、 [Flags] 属性で装飾することをお勧めします。
このインスペクションは、 [Flags] 属性を持たない列挙に ビット論理演算子が適用されるケースを報告します。
列挙型がビットフラグのセットを表している場合は、 [Flags] 属性を適用することを検討してください。 これにより、コードの読者がインテンションをよりよく理解できるようになり、 ToString() や Enum.Parse() などの一部のシステムメソッドでの列挙型の処理方法も変わります。
public enum Days
{
Monday,
Tuesday,
Wednesday,
Thursday,
Friday,
Saturday,
Sunday
}
public class Test
{
public Test()
{
var weekEnd =
Days.Saturday | Days.Sunday;
Console.WriteLine(weekEnd);
// Output: 7
}
}
[Flags]
public enum Days
{
Monday,
Tuesday,
Wednesday,
Thursday,
Friday,
Saturday,
Sunday
}
public class Test
{
public Test()
{
var weekEnd =
Days.Saturday | Days.Sunday;
Console.WriteLine(weekEnd);
// Output: Saturday, Sunday
}
}
2026 年 6 月 12 日