Ich implementiere häufig eine Klasse, die eine eigene Statuseigenschaft als Aufzählung verwaltet: Ich habe eine Statusaufzählung und EINE Statuseigenschaft vom Statustyp. Wie soll ich diesen Namenskonflikt lösen?
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(); }
}
}
Wenn die Statusaufzählung verschiedenen Typen gemeinsam wäre, würde ich sie außerhalb der Klasse platzieren und das Problem wäre gelöst. Der Status gilt jedoch nur für das Auto, daher ist es nicht sinnvoll, die Aufzählung außerhalb der Klasse anzugeben.
Welche Namenskonvention verwenden Sie in diesem Fall?
NB: Diese Frage wurde teilweise in Kommentaren einer Antwort auf diese Frage diskutiert . Da es nicht die Hauptfrage war , wurde es nicht viel sichtbar.
BEARBEITEN: Filip Ekberg schlägt eine hervorragende IMO-Problemumgehung für den speziellen Fall von 'Status' vor. Es wäre jedoch interessant, über Lösungen zu lesen, bei denen der Name der Aufzählung / Eigenschaft anders ist, wie in der Antwort von Michael Prewecki .
EDIT2 (Mai 2010): Meine Lieblingslösung besteht darin, den Namen des Aufzählungstyps zu pluralisieren, wie von Chris S. vorgeschlagen. Gemäß den MS-Richtlinien sollte dies nur für Flaggenaufzählungen verwendet werden. Aber ich habe es immer mehr gemocht. Ich benutze es jetzt auch für reguläre Aufzählungen.