Ign*_*cia 1 .net c# enums fxcop enum-flags
即使我完全知道CA1008警告存在的原因,我也不知道在下列情况下如何避免它.我有一个具有以下含义的Flag枚举:
ValidValue = 0x01
WrittenValue = 0x02
Run Code Online (Sandbox Code Playgroud)
所以在这种情况下,0表示InvalidValueNonWritten而不是None.规则说
除了先前已发布的标记属性枚举之外,请勿禁止此规则发出警告.
在这种情况下,我没有发送枚举,所以如何防止此警告?
编辑:
警告明确说:
警告86 CA1008:Microsoft.Design:在枚举"XXX"中,将"XXX.InvalidValueNonWritten"的名称更改为"无".
编辑2:
枚举的更多状态:
CommandValue = 0x04 // Otherwise it is DataValue
InmediateValue = 0x08 // Otherwise it is Deferred
Run Code Online (Sandbox Code Playgroud)
在此特定时刻,0值具有"无效或写入"含义.但是,如果添加更多枚举成员,则不再是这种情况.例如,如果添加ApprovedValue = 0x04,0将开始表示"无效或书面或批准".这是始终使用None0值的名称的主要原因.
如果None作为名称没有意义,这通常表示枚举设计或名称中的缺陷.在您的情况下,它听起来像枚举实际上表示值已经通过的步骤,而不是值的状态(通常不会使用标志枚举).可能以下是您想要的更近的代表(关联类可能有一个类似的属性CompletedValueProcessingSteps)?
[Flags]
enum ValueProcessingSteps
{
None = 0,
Validation = 1,
Writing = 2
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1238 次 |
| 最近记录: |