C# Zugriffsmodifizierer (Specifiers) verstehen: Mit praktischen Beispielen
Was sind Zugriffsmodifizierer in C#?
Zugriffsmodifizierer – Schlüsselwörter, die die Sichtbarkeit von Typen und Typmembern steuern – sind ein Eckpfeiler der Kapselung in C#. Sie bestimmen, welcher Code eine Klasse, Eigenschaft oder Methode referenzieren darf, und stellen sicher, dass nur die beabsichtigten Programmteile mit internen Implementierungsdetails interagieren können.
In C# stehen sechs Zugriffsmodifizierer zur Verfügung:
- Private
- Public
- Protected
- Internal
- Protected Internal
- Private Protected
In diesem Tutorial lernen Sie:
- Was Zugriffsmodifizierer sind und warum sie wichtig sind
- Private, Public, Protected und Internal Modifizierer im Detail
- Wie Konstruktoren Klassenfelder initialisieren
Private Zugriffsmodifizierer
Die Markierung eines Members als private beschränkt dessen Nutzung auf die enthaltende Klasse. Externer Code – einschließlich anderer Klassen innerhalb derselben Assembly – kann nicht auf einen privaten Member zugreifen.
Beispiel für Private Zugriffsmodifizierer
Lassen Sie uns SetTutorial in Tutorial.cs modifizieren, um diese Regel zu veranschaulichen. Ändern Sie das public-Schlüsselwort zu private:

Wechseln Sie nun zu Program.cs. Der Compiler wird den SetTutorial-Aufruf mit einer roten Wellenlinie unterstreichen, was anzeigt, dass die Methode von diesem Ort aus nicht zugänglich ist.

Public Zugriffsmodifizierer
Öffentliche Member sind für jeden Code sichtbar, der den enthaltenden Typ referenzieren kann. Dies ist der Default für Member, die keinen Zugriffsmodifizierer angeben.
Beispiel für Public Zugriffsmodifizierer

Da SetTutorial als public deklariert ist, kann es aus Program.cs ohne Compilerfehler aufgerufen werden.
Protected Zugriffsmodifizierer
Internal Zugriffsmodifizierer
Konstruktoren in C#
Konstruktoren initialisieren eine neue Instanz einer Klasse. Sie tragen den Klassennamen, haben keinen Rückgabetyp und werden automatisch aufgerufen, wenn new verwendet wird.
- Der Standardzugriff für einen Konstruktor ist
public, sofern nicht anders angegeben. - Ein Konstruktor darf keinen Rückgabetyp deklarieren.
Beispiel für einen C# Konstruktor
Wir demonstrieren einen Konstruktor, der Standardwerte für TutorialID und TutorialName setzt, wenn ein Tutorial-Objekt erstellt wird.
Schritt 1) Fügen Sie den Konstruktor zu Tutorial.cs hinzu:

Code-Erklärung
- Die Methode namens
Tutorialwird als Konstruktor behandelt. Sie läuft automatisch, wenn eine Instanz erstellt wird. - Der Konstruktor weist
0zuTutorialIDund"Default"zuTutorialNamezu, um einen konsistenten Initialzustand zu gewährleisten.
In Program.cs entfernen Sie den Aufruf von SetTutorial, um sich auf das Konstruktorverhalten zu konzentrieren:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DemoApplication {
class Tutorial {
public int TutorialID;
public string TutorialName;
public Tutorial() {
TutorialID = 0;
TutorialName = "Default";
}
public void SetTutorial(int pID, string pName) {
TutorialID = pID;
TutorialName = pName;
}
public string GetTutorial() {
return TutorialName;
}
static void Main(string[] args) {
Tutorial pTutor = new Tutorial();
Console.WriteLine(pTutor.GetTutorial());
Console.ReadKey();
}
}
}
Code-Erklärung
- Eine Instanz von
Tutorialwird mit demnew-Schlüsselwort erstellt. - Die
GetTutorial-Methode ruft den Standard-TutorialNameab, der dann viaConsole.WriteLineangezeigt wird.
Bei Ausführung zeigt die Konsole:
Ausgabe:

Die Ausgabe bestätigt, dass der Konstruktor ausgeführt wurde und TutorialName auf "Default" initialisiert hat.
Hinweis: Der Wert "Default" stammt vom Konstruktor, nicht von externem Code.
Zusammenfassung
- Zugriffsmodifizierer definieren die Sichtbarkeit von Klassenmembern.
privateverbirgt Member vor allen externen Code.publicstellt Member für jeden referenzierenden Code bereit.protectedbeschränkt Member auf die Klasse und ihre Nachkommen.internalbegrenzt Sichtbarkeit auf die aktuelle Assembly.- Konstruktoren initialisieren Felder bei Objektinstanziierung.
C Sprache
- C++ do‑while‑Schleife: Syntax, Praxisbeispiele und verschachtelte Schleifen
- C++ Zeiger meistern: Konzepte, Beispiele & praktische Anwendungen
- C++ Operator‑Overloading: Praktischer Leitfaden mit Code‑Beispielen
- C++-Funktionen erklärt: Mit praktischen Code-Beispielen
- C# Collections meistern: Praktisches Tutorial mit Real-World-Beispielen
- Pythons str.count(): Zeichen & Teilstrings zählen mit Beispielen
- Python round()-Funktion erklärt mit praktischen Beispielen
- Pythons map()-Funktion meistern: Syntax, Beispiele und Best Practices
- Python timeit(): Ausführungszeit messen mit praktischen Beispielen
- Python list.count(): Experten-Guide mit praktischen Beispielen