Cᴏʀ*_*ᴏʀʏ 17
Visual Studio中有一个设计规则,CA1008,可以提供对您的问题的一些了解.规则的描述是(造型我的):
与其他值类型一样,未初始化枚举的默认值为零.非标志属性枚举应定义值为零的成员,以便默认值为枚举的有效值.如果合适,将成员命名为"无".否则,将零分配给最常用的成员.请注意,默认情况下,如果未在声明中设置第一个枚举成员的值,则其值为零.
如果已
Nullable应用的枚举定义了零值成员,则其名称应为"None",以指示在枚举中未设置任何值.将零值成员用于任何其他目的与使用nullAND和OR按位运算符对成员无用相反.这意味着只应为一个成员分配零值.请注意,如果具有零值的多个成员出现在标志属性枚举中,则Nullable对于非零成员返回不正确的结果.
还有一篇Enum Design文章,它提出了以下几点:
- √ DO上简单枚举提供零值.考虑将值称为"无".如果此值不适用于此特定枚举,则应为枚举的最常见默认值指定基础值零.
- X 避免使用标志枚举值为零,除非该值表示"所有标志都被清除"并按照下一个指南的规定进行适当命名.
- √ DO name标志枚举的零值
None.对于标志枚举,该值必须始终表示"清除所有标志".
基于以上所述,我会说是的,这是一种很好的做法,特别是当你有一个[Flags] FlagsAttribute.
该框架设计指南建议,你应该:
务必在简单枚举上提供零值。
考虑将该值称为“无”之类的值。如果这样的值不适合此特定枚举,则应为该枚举最常见的默认值分配基础值零。
例子:
public enum Compression {
None = 0,
GZip,
Deflate
}
Run Code Online (Sandbox Code Playgroud)
他们还建议不要使用 First 和 Last 之类的标记值,因为它们会让用户感到困惑。
这些只是指导方针,可能存在覆盖此建议的竞争性问题,例如与现有库或使用模式的兼容性。
| 归档时间: |
|
| 查看次数: |
7532 次 |
| 最近记录: |