我经常发现自己实现了一个类,该类维护某种类型的状态属性作为枚举: 我有一个 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,因此在类之外声明枚举是没有意义的。
这种情况下你用什么变数命名原则?
注: 这个问题在 这个问题答案的评论中有部分讨论。因为这不是 总台的问题,所以能见度不高。
编辑: 菲利普埃克伯格建议一个国际海事组织优秀的解决方案的具体情况下的“状态”。然而,如果能够阅读到 Enum/属性名称不同的解决方案,比如 Michael Prewecki 的 回答,我会很感兴趣。
EDIT2(2010年5月) : 我最喜欢的解决方案是将枚举类型名称复数化,正如 Chris S 所建议的那样。根据 MS 指南,这应该只用于标志枚举。但我越来越喜欢它了。我现在也将它用于普通枚举。