Erste Schritte – Typen und Member

Als objektorientierte Sprache unterstützt C# die Konzepte der Kapselung, Vererbung und Polymorphie. Eine Klasse kann direkt von einer übergeordneten Klasse erben und eine beliebige Anzahl von Schnittstellen implementieren. Methoden, die virtuelle Methoden in einer übergeordneten Klasse überschreiben, erfordern das override-Schlüsselwort als Möglichkeit, eine versehentliche Neudefinition zu verhindern. In C# verhält sich eine Struktur wie eine vereinfachte Klasse. Sie entspricht einem auf dem Stapel reservierten Typ, der Schnittstellen implementieren kann, jedoch keine Vererbung unterstützt. C# stellt auch Datensätze bereit, bei denen es sich um Klassentypen handelt, deren Zweck es ist, Datenwerte zu speichern.

Klassen und Objekte

Klassen sind die grundlegendsten der C#-Typen. Eine Klasse ist eine Datenstruktur, die einen Zustand (Felder) und Aktionen (Methoden und andere Funktionsmember) in einer einzigen Einheit kombiniert. Eine Klasse stellt eine Definition für Instanzen der Klasse bereit, die auch Objekte genannt werden. Klassen unterstützen Vererbung und Polymorphie. Dies sind Mechanismen, durch die abgeleitete Klassen erweitert und Basisklassen spezialisiert werden können.

Neue Klassen werden mithilfe von Klassendeklarationen erstellt. Eine Klassendeklaration beginnt mit einem Header. Der Header legt Folgendes fest:

  • Die Attribute und Modifizierer der Klasse
  • Den Namen der Klasse
  • Die Basisklasse (wenn von einer Basisklasse geerbt wird)
  • Die von der Klasse implementierten Schnittstellen

Auf den Header folgt der Klassenkörper. Dieser besteht aus einer Liste der Memberdeklarationen, die zwischen den Trennzeichen { und } eingefügt werden.

Im folgenden Code wird die Deklaration einer einfachen Klasse namens Point veranschaulicht:

Typparameter

Generische Typparameter definieren Typparameter. Typparameter sind eine Liste von Typparameternamen, die in spitzen Klammern enthalten sind. Typparameter folgen auf den Klassennamen. Die Typparameter können dann im Körper der Klassendeklarationen zum Definieren der Klassenmember verwendet werden. Im folgenden Beispiel lauten die Typparameter von Pair``TFirst und TSecond: