Zum Hauptinhalt springen
Veröffentlicht am

Properties in C#

Teilen:

Einführung

In C#, wie in vielen objektorientierten Programmiersprachen, ist Kapselung eine grundlegende Praxis. Sie fördert den Schutz und die Integrität von Daten, indem der direkte Zugriff auf sie eingeschränkt wird. Properties spielen dabei eine entscheidende Rolle.

Was sind Properties?

Eine Property ist ein Member einer Klasse, das einen Mechanismus zum Abrufen oder Festlegen des Werts eines internen Felds bereitstellt. Anstatt direkt auf das Feld zuzugreifen, kann man Properties verwenden, um damit zu interagieren, und so sicherstellen, dass jede Logik im Zusammenhang mit dem Lesen oder Schreiben des Felds eingehalten wird.

Vorteile von Properties

  1. Kapselung: Properties helfen dabei, Daten zu schützen, indem sie verhindern, dass diese auf unerwünschte Weise geändert werden.
  2. Validierung: Vor der Zuweisung eines Werts kann sichergestellt werden, dass er innerhalb eines bestimmten Bereichs liegt oder andere Bedingungen erfüllt.
  3. Berechnete Darstellung: Properties können einen berechneten Wert anstelle eines gespeicherten Werts zurückgeben.

Vertiefung von get und set

  • get: Dieser Accessor wird verwendet, wenn der Wert der Property gelesen wird. Es kann zusätzliche Logik hinzugefügt werden, etwa Berechnungen oder Transformationen, bevor der Wert zurückgegeben wird.
  • set: Dieser Accessor kommt zum Einsatz, wenn versucht wird, den Wert der Property zu ändern. Hier findet die Validierung oder andere Logik im Zusammenhang mit der Wertänderung statt.

Schreibgeschützte und Nur-Schreib-Properties

  • Schreibgeschützt: Eine Property, die nur den get-Accessor definiert.
  • Nur-Schreib: Obwohl selten, sind dies Properties, die nur den set-Accessor definieren.

Erweiterte Beispiele

Über das grundlegende Beispiel hinaus wollen wir etwas tiefer eintauchen:

public class Kreis {
  private double radius;

  public double Radius {
    get { return radius; }
    set {
      if (value < 0)
        radius = 0;
      else
        radius = value;
    }
  }

  // Schreibgeschützte Property
  public double Flaeche {
    get {
      return Math.PI * radius * radius;
    }
  }
}

In diesem Beispiel haben wir eine Klasse Kreis, die eine Property Radius und eine schreibgeschützte Property Flaeche besitzt. Der Radius kann nicht negativ sein, und die Flaeche wird auf Basis des Radius berechnet.

Fazit

Die korrekte Verwendung von Properties in C# ist unerlässlich, um sicherzustellen, dass Daten sicher und kontrolliert verarbeitet werden. Sie bieten eine strukturierte Möglichkeit, mit den Feldern einer Klasse zu interagieren, die Datenintegrität zu wahren und Flexibilität bei der Implementierung zu bieten.

Happy coding!