我问这个问题,尽管我读过类似的文章,但并不完全是我想要的C# naming convention for enum and matching property

我发现我倾向于用复数来命名枚举,然后"使用"它们作为单数,例如:

public enum EntityTypes {
  Type1, Type2
}

public class SomeClass {
  /*
    some codes
  */

  public EntityTypes EntityType {get; set;}

}

这当然有效,这是我的风格,但有人能发现这种惯例的潜在问题吗?不过,我确实有一个"丑陋"的名字,上面写着"地位":

public enum OrderStatuses {
  Pending, Fulfilled, Error, Blah, Blah
}

public class SomeClass {
  /*
    some codes
  */

  public OrderStatuses OrderStatus {get; set;}

}

其他信息: 也许我的问题不够清楚.在命名我定义的枚举类型的变量时,我经常需要认真考虑.我知道最佳实践,但它无助于减轻我命名这些变量的工作.

我不可能将我的所有枚举属性(比如"Status")公开为"MyStatus".

我的问题是:有人能发现我的上述惯例的潜在问题吗?It is NOT about best practice.

Question rephrase:

嗯,我想我应该这样问这个问题:有没有人能想出一种很好的通用方法来命名枚举类型,以便在使用时,枚举"实例"的命名将非常简单?

推荐答案

微软建议对Enum使用单数,除非Enum代表位字段(也使用FlagsAttribute).参见Enumeration Type Naming Conventions(微软Naming Guidelines的子集).

为了回应您的澄清,我认为以下任何一项都没有问题:

public enum OrderStatus { Pending, Fulfilled, Err或 };

public class SomeClass { 
    public OrderStatus OrderStatus { get; set; }
}

public enum OrderStatus { Pending, Fulfilled, Err或 };

public class SomeClass {
    public OrderStatus Status { get; set; }
}

.net相关问答推荐

Azure Function应用程序-如何升级.NET运行时

如何在PowerShell中隐藏任务延迟输出?

使用React路由加载器获取数据不能正常工作

如何在 ASP.NET Core MVC 中读取操作方法的属性?

为什么 SortedSet.GetViewBetween 不是 O(log N)?

为什么 .Contains 慢?通过主键获取多个实体的最有效方法?

为什么循环引用被认为是有害的?

是否有用于 Windows / C# 开发的可嵌入 Webkit 组件?

为什么 Interlocked.Exchange 不支持布尔类型?

变量MyException已声明但从未使用

如何比较 C# 中的(目录)路径?

从 Windows 窗体打开 URL

List 和 IEnumerable 的实际区别

是否有 Linq 方法可以将单个项目添加到 IEnumerable

当我们按下 Enter 键时启动的 WPF 文本框命令

如何使用 C# 创建自签名证书?

.NET 配置文件 configSource 在应用程序目录文件夹之外

判断 .NET 中的目录和文件写入权限

模拟和单元测试需要时如何抛出 SqlException?

如何使用 XmlSerializer 将字符串序列化为 CDATA?