Property

Aus Das Sopra Wiki

Wechseln zu: Navigation, Suche

Eine Property ist ein Fald, daß nach außen wie eine öffentliche Variable aussieht. In Wirklichkeit ist es allerdings eine Methode.

Es gibt zwei Möglichkeiten, eine Property zu definieren:

  • Eine ausführliche, in der man statt direkt eine Variable zurückzugeben bzw. zuzuweisen auch Datenbankzugriffe und Berechnungen machen kann
public String Property
{
    get { return mEineVariable; }
    set { mEineVariable = value; }
}
  • und eine automatisch generierte, in der man nur Variablen zurückgeben bzw. zuweisen kann
public String Property { get; set;}

Man kann dabei eine Variable nach außen hin nur lesbar machen:

public String Property
{
    get { return mEineVariable; }
    private set { mEineVariable = value; }
}

bzw kurz:

public String Property { get; private set;}

Properties sind aufgrund der kurzen Länge gute Kandidaten für Inlining.

Probleme

Man sollte beachten, daß auch wenn der Zugriff wie eine Variable aussieht es in Wirklichkeit eine Methode ist. Da der Benutzer einer Property aber von einer Variablen ausgehen kann und wird, sollte sie

  • beil Lesen keine Seiteneffekte haben
    • also keine nach außen hin sichtbaren Änderungen durchführen
  • bei zwei Aufrufen direkt hintereinander beide male das gleiche Ergebnis liefern (vorausgesetzt, sie wurde zwischenzeitlich nicht von einem anderen Thread geändert)
    • Als Gegenbeispiel kann man DateTime.Now nennen. Allerdings wird die Entscheidung, dies als Property zu implementieren vom .Net-Team als Fehler angesehen
  • Properties können auch komplexe Aktionen ausführen um an einen Wert zu kommen. Werte können z.B. auch aus einer Datenbank ausgelesen werden.

Siehe auch

  1. Modifizierer in C#
Persönliche Werkzeuge