gpt4 book ai didi

c# - 可以防止非位掩码字段上的意外按位运算符吗?

转载 作者:太空狗 更新时间:2023-10-29 23:47:50 26 4
gpt4 key购买 nike

在 C# 中你是 recommended将 [Flags] 属性添加到位掩码枚举,如下所示:

[Flags]
public enum Condiments
{
None = 0,
Ketchup = 1,
Mustard = 2,
Mayo = 4,
Pickle = 8,
AllTheWay = 15
}

我发现我的代码在没有 [Flags] 属性的情况下错误地对枚举执行了按位运算,该属性根本不是位掩码(First=1、Second=2、Third=3 等) .).这当然在逻辑上是错误的,但编译器完全可以接受。

我想知道是否有任何方法可以利用 [Flags] 属性或其他方法将其转换为编译时错误/警告。我不知道从哪里开始,但它似乎应该是可行的,所以任何帮助将不胜感激。

最佳答案

我建议对于这种“自定义”检查,如果编译器无法找出问题,请使用 http://research.microsoft.com/en-us/projects/contracts/ . CodeContracts,如果可以的话。

关于c# - 可以防止非位掩码字段上的意外按位运算符吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7587506/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com