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

Ua En Es

C# Zugriffsmodifikatoren


Zugriffsmodifikatoren

Mittlerweile sind Sie mit dem Schlüsselwort public, das in vielen unserer Beispiele vorkommt, recht vertraut:

public string color;

Das Schlüsselwort public ist ein Zugriffsmodifikator, der zum Festlegen der Zugriffsebene/Sichtbarkeit für Klassen, Felder, Methoden und Eigenschaften verwendet wird.

C# verfügt über die folgenden Zugriffsmodifikatoren:

Modifikator Beschreibung
public Der Code ist für alle Klassen zugänglich
private Der Code ist nur innerhalb derselben Klasse zugänglich
protected Der Code ist innerhalb derselben Klasse oder in einer von dieser Klasse geerbten Klasse zugänglich. Mehr über Vererbung erfahren Sie in einem späteren Kapitel
internal Der Code ist nur innerhalb seiner eigenen Assembly zugänglich, nicht jedoch von einer anderen Assembly aus. Mehr dazu erfahren Sie in einem späteren Kapitel

Es gibt auch zwei Kombinationen: protected internal und private protected.

Konzentrieren wir uns zunächst auf die Modifikatoren public und private.


Privater Modifikator

Wenn Sie ein Feld mit einem private-Zugriffsmodifikator deklarieren, kann nur innerhalb derselben Klasse darauf zugegriffen werden:

Beispiel

class Car
{
  private string model = "Mustang";

  static void Main(string[] args)
  {
    Car myObj = new Car();
    Console.WriteLine(myObj.model);
  }
}

Die Ausgabe wird sein:

Mustang

Try it Yourself »

Wenn Sie versuchen, außerhalb der Klasse darauf zuzugreifen, tritt ein Fehler auf:

Beispiel

class Car
{
  private string model = "Mustang";
}

class Program
{
  static void Main(string[] args)
  {
    Car myObj = new Car();
    Console.WriteLine(myObj.model);
  }
}

Die Ausgabe wird sein:

'Car.model' is inaccessible due to its protection level
The field 'Car.model' is assigned but its value is never used

Try it Yourself »


Öffentlicher Modifikator

Wenn Sie ein Feld mit einem public-Zugriffsmodifikator deklarieren, ist es für alle Klassen zugänglich:

Beispiel

class Car
{
  public string model = "Mustang";
}

class Program
{
  static void Main(string[] args)
  {
    Car myObj = new Car();
    Console.WriteLine(myObj.model);
  }
}

Die Ausgabe wird sein:

Mustang

Try it Yourself »


Warum Zugriffsmodifikatoren?

Um die Sichtbarkeit von Klassenmitgliedern zu steuern (die Sicherheitsstufe jeder einzelnen Klasse und jedes Klassenmitglieds).

Um eine „Kapselung“ zu erreichen – das ist der Prozess, der sicherstellt, dass „sensible“ Daten vor Benutzern verborgen bleiben. Dies geschieht durch die Deklaration von Feldern als private. Mehr dazu erfahren Sie im nächsten Kapitel.

Hinweis: Standardmäßig sind alle Mitglieder einer Klasse privat, wenn Sie keinen Zugriffsmodifikator angeben:

Beispiel

class Car
{
  string model;  // private
  string year;   // private
}