私は自分のステータスプロパティを列挙型として保持するクラスを実装していることがよくあります。Status列挙型とStatus型のONE 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列挙型がさまざまなタイプに共通である場合、それをクラスの外に置いて問題を解決します。ただし、ステータスは車にのみ適用されるため、クラス外で列挙型を宣言することは意味がありません。
この場合、どの命名規則を使用しますか?
注意:この質問は、この質問の回答のコメントで部分的に議論されました。それがなかったので、メインの問題、それは多くの可視性を取得できませんでした。
編集:Filip Ekbergは、「ステータス」の特定のケースに対してIMOの優れた回避策を提案しています。それでも、Michael Preweckiの回答のように、列挙型/プロパティの名前が異なるソリューションについて読むのは興味深いでしょう。
EDIT2(2010年5月):私のお気に入りの解決策は、Chris Sの提案に従って列挙型の名前を複数形にすることです。MSのガイドラインによると、これはフラグ列挙型にのみ使用する必要があります。しかし、私はそれをますます好きになりました。現在は通常の列挙型にも使用しています。