枚举命名约定

我问这个问题,尽管阅读类似但不完全是我想要在C#命名约定枚举和匹配属性

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

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;}

}

附加信息:也许我的问题不够清楚。 命名我定义的枚举类型的变量时,我经常不得不认真思考。 我知道最好的做法,但这无助于缓解我指定这些变量的工作。

我不可能将所有的枚举属性(称为“状态”)显示为“MyStatus”。

我的问题:任何人都可以找到上述我的约定潜在的问题? 这不是最佳做法。

问题修改:

那么,我想我应该这样问这个问题:有人可以提出一种很好的通用方法来命名枚举类型,这样在使用时,枚举'实例'的命名将非常简单明了吗?


Microsoft建议对Enum使用单数形式,除非Enum表示位域(也使用FlagsAttribute )。 请参阅枚举类型命名约定(Microsoft命名指南的子集)。

为了回应你的澄清,我发现以下任何一点都没有错:

public enum OrderStatus { Pending, Fulfilled, Error };

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

要么

public enum OrderStatus { Pending, Fulfilled, Error };

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

我开始用复数命名枚举,但后来改为单数。 只是在使用它们的地方似乎更有意义。

enum Status { Unknown = 0, Incomplete, Ready }

Status myStatus = Status.Ready;

相比于:

Statuses myStatus = Statuses.Ready;

我发现单数形式听起来更自然。 我们同意,当在一个地方声明枚举时,我们认为“这是一群凡是”,但是当使用它时,可能在很多地方,我们认为“这是一个什么” 。


这种情况从来不适用于复数。

enum显示某个或另一个属性。 我举一个例子:

enum Humour
{
  Irony,
  Sarcasm,
  Slapstick,
  Nothing
}

你可以有一个类型,但是可以用多个而不是复数来考虑它:

Humour.Irony | Humour.Sarcasm

而不是

Humours { Irony, Sarcasm }

你有幽默感,你没有幽默感。

链接地址: http://www.djcxy.com/p/41305.html

上一篇: Enum Naming Convention

下一篇: List of standard lengths for database fields