枚举命名约定
我问这个问题,尽管阅读类似但不完全是我想要在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