Was ist der beste Weg, um eine Immobilie zu implementieren, die nur lesbar für die Öffentlichkeit, aber beschreibbar Erbe?

StackOverflow https://stackoverflow.com/questions/219904

  •  03-07-2019
  •  | 
  •  

Frage

Wenn ich eine Eigenschaft, die ich will Erben lassen, schreiben, sondern halten nur lesbar außen, was ist der bevorzugte Weg, um dies zu implementieren? Normalerweise gehe ich mit so etwas wie folgt aus:

private object m_myProp;
public object MyProp
{
    get { return m_myProp; }
}
protected void SetMyProp(object value)
{
    m_myProp = value;
}

Gibt es einen besseren Weg?

War es hilfreich?

Lösung

private object m_myProp;
public object MyProp
{
    get { return m_myProp; }
    protected set { m_myProp = value; }
}

oder in C # 3.0

public object MyProp {get; protected set;}

Andere Tipps

Dies ist definitiv der Weg zu gehen.

public object MyProp {get; protected set;}

Wenn Sie auf einer älteren Version von C # sind, dann ist dies der Weg zu gehen.

private object _myProp;
public object MyProp
{
    get { return _myProp; }
    protected set { _myProp = value; }
}

Mit einem Setter und Getter ist nicht wirklich besser als auf dieser Ebene der Sichtbarkeit eine Variable ist.

Daher könnte man einfach die Variable selbst geschützt machen und den Leser Öffentlichkeit.

Das sei gesagt, Getter und Setter sind ein Indikator für schlechte OO - sind Sie sicher, dass Sie sie brauchen? Sie sollten das Objekt fragen, etwas mit seinen Mitgliedern es dann für seine Mitglieder zu fragen, nicht zu tun, um sie außerhalb des Objekts zu manipulieren.

Dies ist eine sehr allgemeine Regel, und es gibt viele Ausnahmen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top