Eigenschaften in C#?

1 Antwort

Jetzt stellt sich mir die Frage, ob es ein gute Vorgehensweise ist nur private Variablen zu verwenden (...)

Für deinen Fall wäre das vollkommen ausreichend. Die Variablen würde ich zudem als readonly setzen, wenn du ihren Wert wirklich nur im Konstruktor setzen musst.

(...) innerhalb der Klasse generell Eigenschaften in den Methoden darin zu verwenden oder die private Variable (...)

An sich bietet ein Property stets den Vorteil der Abstraktion. Wenn zum Lesen oder Schreiben des Felds beispielsweise eine Logik gehört, die jedesmal berücksichtigt werden muss, dann kann man die leicht mit in dem Property kapseln.

Ein einfaches Beispiel dafür wäre ein Property Age für eine Person. Damit das Alter valid bleibt, müsste man beim Schreiben den neuen Wert prüfen.

private int _age;

private int Age
{
  get => _age;
  set
  {
    if (value > -1 && value <= 123)
    {
      _age = value;
    }
  }  
}

Meines Erachtens spricht dennoch nichts dagegen, auch mit Feldern zu arbeiten, sofern man so einen Fall wie oben nicht hat (bzw. umgeht) und die Sichtbarkeit auf den Klassenkörper beschränkt ist. Aus einem Feld später noch ein Property zu machen, ist in einer IDE wie Visual Studio glücklicherweise auch nicht so schwer.