我经常发现自己实现了一个类,该类维护作为枚举的某种状态属性:我有一个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枚举对于不同类型是通用的,那么我将其放在类之外,这样就可以解决问题。但是Status仅适用于Car,因此在类外声明该枚举没有意义。
在这种情况下,您使用什么命名约定?
NB:这个问题在对这个问题的答案的评论中被部分辩论。由于这不是主要问题,因此可见性不高。
编辑:菲利普·埃克伯格(Filip Ekberg)针对特定的“状态”案例提出了IMO出色的解决方法。但是,我会很感兴趣地阅读有关枚举/属性名称不同的解决方案的信息,例如Michael Prewecki的答案。
EDIT2(2010年5月):我最喜欢的解决方案是按照Chris S的建议对枚举类型名称进行复数。根据MS准则,此名称仅应用于标记枚举。但是我变得越来越喜欢它。我现在也将其用于常规枚举。