我经常发现自己实现了一个类,将自己的某种status属性作为枚举进行维护:我有一个status枚举和一个status类型的status属性.我应该如何解决这个名称冲突?
public class Car
{
public enum Status
{
Off,
Starting,
Moving
};
Status status = Status.Off;
public Status Status // <===== Won't compile =====
{
get { return status; }
set { status = value; DoSomething(); }
}
}
如果状态枚举对不同的类型是通用的,我会把它放在类之外,问题就会解决.但是Status只适用于Car,因此在类之外声明enum是没有意义的.
在这种情况下,您使用什么命名约定?
注:这个问题在回答this question的 comments 中进行了部分讨论.因为这不是main题,所以没有太大的可见度.
编辑:菲利普·埃克伯格(Filip Ekberg)建议国际海事组织(IMO)针对"状态"这一特定情况提供一个极好的解决方案.然而,我很有兴趣阅读有关枚举/属性名称不同的解决方案,如Michael Prewecki的answer.
EDIT2(2010年5月):我最喜欢的解决方案是将枚举类型名称复数,就像Chris S建议的那样,根据MS指南,这应该只用于标志枚举.但是我越来越喜欢它了.我现在也将它用于常规的枚举.