BESTE WEBSITE FÜR WEBENTWICKLER
C# Sprache. W3Schools auf Deutsch. Unterricht für Anfänger

Ua En Es

C# Eigenschaften (Get und Set)


Eigenschaften und Kapselung

Bevor wir mit der Erklärung von Eigenschaften beginnen, sollten Sie über ein grundlegendes Verständnis von „Kapselung“ verfügen.

Die Bedeutung von Kapselung besteht darin, sicherzustellen, dass „sensible“ Daten vor Benutzern verborgen bleiben. Um dies zu erreichen, müssen Sie:

  • Felder/Variablen deklarieren als private
  • Bereitstellung der Methoden public get und set durch Eigenschaften, um auf den Wert eines private-Felds zuzugreifen und ihn zu aktualisieren

Eigenschaften

Aus dem vorherigen Kapitel haben Sie gelernt, dass auf private-Variablen nur innerhalb derselben Klasse zugegriffen werden kann (eine externe Klasse hat keinen Zugriff darauf). Manchmal müssen wir jedoch auf sie zugreifen – und das geht mit Eigenschaften.

Eine Eigenschaft ist wie eine Kombination aus einer Variablen und einer Methode und verfügt über zwei Methoden: ein get und ein set-Methode:

Beispiel

class Person
{
  private string name; // feld

  public string Name   // eigentum
  {
    get { return name; }   // get-Methode
    set { name = value; }  // set-Methode
  }
}

Beispiel erklärt

Die Eigenschaft Name ist mit dem Feld Name verknüpft. Es empfiehlt sich, für die Eigenschaft und das private Feld denselben Namen zu verwenden, jedoch mit einem Großbuchstaben als Anfangsbuchstaben.

Die Methode get gibt den Wert der Variablen zurück name.

Die Methode set weist dem namevalue zu variabel. Das Schlüsselwort value stellt den Wert dar, den wir der Eigenschaft zuweisen.

Wenn Sie es nicht vollständig verstehen, schauen Sie sich das folgende Beispiel an.

Jetzt können wir die Eigenschaft Name verwenden, um auf die zuzugreifen und sie zu aktualisieren private feld der Klasse Person:

Beispiel

class Person
{
  private string name; // feld
  public string Name   // eigentum
  {
    get { return name; }
    set { name = value; }
  }
}

class Program
{
  static void Main(string[] args)
  {
    Person myObj = new Person();
    myObj.Name = "Liam";
    Console.WriteLine(myObj.Name);
  }
}

Die Ausgabe wird sein:

Liam

Try it Yourself »


Automatische Eigenschaften (Kurzschrift)

C# bietet auch eine Möglichkeit, abgekürzte/automatische Eigenschaften zu verwenden, bei der Sie das Feld für die Eigenschaft nicht definieren müssen und nur get; und set; innerhalb der Eigenschaft.

Das folgende Beispiel führt zum gleichen Ergebnis wie das obige Beispiel. Der einzige Unterschied besteht darin, dass weniger Code vorhanden ist:

Beispiel

Automatische Eigenschaften verwenden:

class Person
{
  public string Name  // eigentum
  { get; set; }
}

class Program
{
  static void Main(string[] args)
  {
    Person myObj = new Person();
    myObj.Name = "Liam";
    Console.WriteLine(myObj.Name);
  }
}

Die Ausgabe wird sein:

Liam

Try it Yourself »


Warum Kapselung?

  • Bessere Kontrolle der Klassenmitglieder (verringern Sie die Wahrscheinlichkeit, dass Sie selbst (oder andere) den Code durcheinander bringen)
  • Felder können schreibgeschützt (wenn Sie nur die Methode get verwenden) oder schreibgeschützt gemacht werden (wenn Sie nur die Methode set verwenden)
  • Flexibel: Der Programmierer kann einen Teil des Codes ändern, ohne dass sich dies auf andere Teile auswirkt
  • Erhöhte Datensicherheit