【问题标题】:Should Enum class filenames be suffixed with 'Enum'?Enum 类文件名应该以“Enum”为后缀吗?
【发布时间】:2011-09-19 23:18:24
【问题描述】:

当将类分解为文件时,我想知道只包含枚举的类文件的命名约定是什么。它们应该像任何其他类一样与枚举名称匹配,还是应该以“Enum”为后缀,以便开发人员知道该文件只包含一个枚举?

例如:

namespace MyCompanyName.MyApplication
{
    public enum Colors
    {
        Red,
        Blue,
        Green,
        Yellow
    }
}

您认为包含上述代码的文件应该命名为“Colors.cs”还是“ColorsEnum.cs”?或者,这些文件可能还有另一种公认的命名约定?

【问题讨论】:

  • 没有。你选择了最糟糕的例子,没有人会理解为什么 Colors.Orange 无效。称它为 ColorsEnum 并没有帮助。但这一切都被 IntelliSense 解决了。你可以假设它被使用了。

标签: c# enums naming-conventions filenames


【解决方案1】:

这是命名空间和文件夹结构如何使您的目录更具可读性的完美示例。我的公司将枚举类型粘贴在 _enumeration 文件中,但将它们留在与主要使用这些枚举的类相同的命名空间中。这是一个偏好问题,你应该做任何对你和你的队友最易读的事情。我不会在您的文件夹结构中使用任何匈牙利风格的符号。

【讨论】:

    【解决方案2】:

    创建一个名为 Enumerations、Enums 或其他描述性的文件夹就足够了。 您也可以遵循 C# 命名标准:

    "枚举的名称 不要在枚举值名称上使用前缀。例如,对于 ADO 枚举,不要使用 ad 等前缀,对于富文本枚举,不要使用 rtf 等前缀。

    这也意味着您不应在枚举值名称中包含枚举类型名称。下面的代码示例演示了错误地命名枚举值。

    C#代码如下

    public  enum Teams
    {
        TeamsAlpha,
        TeamsBeta,
        TeamsDelta
    }
    

    参考资料: Names of Classes, Structs, and Interfaces

    【讨论】:

    • 我知道类型名称不应包含前缀或后缀,但这个问题是专门针对文件名提出的。
    • 你不能像这样复制别人的内容然后再分发,这就是“版权X,保留所有权利”的意思。通过在 Stack Exchange 上发帖,您声明您有权在 CC BY-SA 许可下分发帖子内容。请用您自己的话写出答案(并可能链接到外部网站以获取更多信息)。
    【解决方案3】:

    在我看来,文件名应该与 Enum 的名称相同,根据 Enum Naming guidelines 应该有 Enum 后缀。此外,该指南还建议您的枚举应该是 singular,因此将两者都考虑在内,它应该是 Color.cs

    【讨论】:

      【解决方案4】:

      创建一个名为 Enums 的文件夹并将文件命名为 Colors.cs 怎么样?

      【讨论】:

      • 我同意这一点。如果文件只包含一个对象声明,我发现文件名与对象相同很有用。
      【解决方案5】:

      首先,这完全是个人/团队偏好的事情。

      话虽如此:

      我个人将其命名为Colors.cs。这使文件名与类型名称相对应。当我在处理 API 时,如果“颜色”是由枚举表示的一组固定事物,我可能会知道这一点,并且不会造成混淆。

      【讨论】:

      猜你喜欢
      • 2011-12-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-03
      • 1970-01-01
      相关资源
      最近更新 更多