【发布时间】:2014-03-27 14:39:48
【问题描述】:
即使我完全了解 CA1008 警告存在的原因,我也不知道如何在以下情况下避免它。我有一个具有以下含义的标志枚举:
ValidValue = 0x01
WrittenValue = 0x02
所以在这种情况下,0 表示 InvalidValueNonWritten 而不是 None。规则says
除了以前发布的标志属性枚举之外,不要禁止来自此规则的警告。
在这种情况下,我没有发送枚举,那么如何防止出现此警告?
编辑:
警告明确表示:
警告 86 CA1008:Microsoft.Design:在枚举“XXX”中,将“XXX.InvalidValueNonWritten”的名称更改为“None”。
编辑 2:
枚举的更多状态:
CommandValue = 0x04 // Otherwise it is DataValue
InmediateValue = 0x08 // Otherwise it is Deferred
【问题讨论】:
-
为什么没有
InvalidValueNonWritten为 0?这不是枚举的默认状态吗? -
是什么阻止您提供合理的零值?
-
@NoviceProgrammer:检查编辑。规则说 0 应该是 None 可能是为了模拟空值(未设置)。
-
@DanielJamesBryars:检查编辑。规则说 0 应该是 None 可能是为了模拟空值(未设置)。
-
枚举名称与编码的 FxCop 规则无关,但它可以为试图帮助您的人提供相关信息。 ;)
标签: c# .net enums fxcop enum-flags