4

这是一个重复的问题,但没有真正的解决方案。

所以我们开始吧。可以说我有:

public enum Color
{
    Red,
    Blue,
    Green
}

public class BlueUnicorn
{
    private const Color Color = Color.Blue;
}
  1. “对大多数 Enum 类型使用单数名称,但对作为位字段的 Enum 类型使用复数名称。” 从Microsoft 的枚举类型命名指南 检查中检索

  2. “考虑赋予属性与其类型相同的名称。” 从Microsoft 的类型成员名称 检查中检索!

  3. 根据 Resharper Check,我应该使用常量而不是只读的!在此处输入图像描述

但我得到一个编译器错误。不过,这很奇怪,没有智能。'BlueUnicorn.Color' 的常数值的评估涉及循环定义。

我觉得我在这里的会议裂缝。根据最佳实践命名约定,该字段应该命名什么?

4

2 回答 2

4

您可以按照自己的方式命名该字段。要解决编译错误,只需在Color.Blue.

于 2013-04-03T13:19:41.933 回答
2

您不是在约定俗成的裂缝中(顺便说一句,很棒!)。约定 (2) 不适用于属性,而不是字段或常量。因此,您可以将其称为UnicornColor.

作为旁注,我很欣赏这可能不是你真正的代码(除非你真的写一个独角兽模拟器!),但在我看来,拥有一个 BlueUnicorn 类是不对的。拥有一个基于该类中的特定常量定义的类似乎太具体了——肯定Color会是一个Unicorn类的属性吗?

我不知道这是否适用于您的真实代码,但这可能是您的设计有点错误,而且问题永远不会出现?

于 2013-04-03T13:20:25.727 回答