Zugriffsmodifizierer für Klassenmember
Modifizierer | Beschreibung |
public | Uneingeschränkt zugänglich. |
protected internal | Zugänglich für die eigene Klasse, von dieser abgeleitete Klassen und das eigene Programm (Kompilierungsgemeinschaft). |
internal | Zugänglich für das eigene Programm. |
protected | Zugänglich für die eigene und abgeleitete Klassen. |
private | Zugänglich für die eigene Klasse. Dies ist der Standardzugriff für Member, die ohne Modifizierer deklariert wurden. |
Spezielle Klassen
Modifizierer | Beschreibung |
static | Eine als static deklarierte Klasse darf nur statische Member enthalten. Statische Klassen können weder instanziiert noch vererbt werden. |
abstract | Die Klasse kann nur als Basisklasse für die Definition weiterer Klassen verwendet werden. Eine Instanziierung der Klasse ist nicht möglich. |
sealed | Die Klasse kann nicht als Basisklasse für die Definition weiterer Klassen verwendet werden. |
Feldmodifizierer
Modifizierer | Beschreibung |
static | Statische Felder, auch Klassenvariablen genannt, existieren nur einmal. Methoden der Klasse können direkt auf die statischen Felder ihrer Klasse zugreifen. Ansonsten erfolgt der Zugriff über den Klassennamen. |
readonly | Deklariert ein Feld als konstant. Einem solchen Feld können Sie nur im Zuge der Deklaration oder innerhalb eines Konstruktors einen Wert zuweisen. Später kann der Wert nur noch abgefragt werden. Dieser Modifizierer kann nicht in Kombination mit volatile oder static vergeben werden. (readonly-Felder sind automatisch static.) |
volatile | Schützt ein Feld vor ungewünschten Optimierungen durch den Compiler, die zu Fehlern führen können, wenn mehrere Threads unsynchronisiert auf das Feld zugreifen. Dieser Modifizierer kann nicht in Kombination mit readonly vergeben werden. |
new | Zeigt an, dass ein geerbtes Feld bewusst verborgen wird. |
Methodenmodifizierer
Modifizierer | Beschreibung |
static | Statische Methode, die nicht über Objekte der Klasse, sondern über die Klasse angesprochen wird. |
extern | Zeigt an, dass die Methode in einer anderen Assembly implementiert wird. Mit extern deklarierte Methoden werden ohne Anweisungsblock definiert. Die Verbindung zur Implementierung wird meist über ein DllImport-Attribut hergestellt. |
Die folgenden Modifizierer regeln die Vererbung von Methoden | |
virtual | Virtuelle Methode. Virtuelle Methoden können in abgeleiteten Klassen überschrieben werden (also unter Beibehaltung der Signatur mit neuem Anweisungsblock verbunden werden). |
override | Zeigt an, dass hier nicht eine neue Methode eingeführt, sondern eine geerbte Methode überschrieben wird. |
new | Zeigt an, dass diese Methode eine geerbte Methode gleicher Signatur verdeckt. |
abstract | Führt eine virtuelle Methode ein, ohne jedoch für diese eine Implementierung vorzugeben. Die Methode muss(!) also in abgeleiteten Klassen überschrieben werden, wenn von diesen Klassen Objekte erzeugt werden sollen. |
sealed | Zeigt an, dass diese Methode in abgeleiteten Klassen nicht weiter überschrieben werden kann. Darf nur in Kombination mit override verwendet werden, d. h. die Methode muss selbst eine geerbte Methode überschreiben. |
(Quelle: Dirk Louis, Shinja Strasser: Microsoft Visual C# 2008 – Das Entwicklerbuch
Microsoft Press Deutschland, ISBN:978-3-86645-507-8)