代码检查:对未标记 [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
}
}
最后修改日期: 2025年 9月 26日