Freigeben über


Strukturen (C#-Programmierhandbuch)

Strukturen werden mithilfe des struct-Schlüsselworts definiert. Beispiel:

public struct PostalAddress
{
    // Fields, properties, methods and events go here...
}

Strukturen haben fast die gleiche Syntax wie Klassen, unterliegen jedoch mehr Beschränkungen als Klassen:

  • Innerhalb einer Strukturdeklaration können Felder nur dann initialisiert werden, wenn sie als konstant oder statisch deklariert werden.

  • Eine Struktur kann keinen Standardkonstruktor (ein Konstruktor ohne Parameter) und keinen Destruktor deklarieren.

  • Strukturen werden durch Zuweisung kopiert. Wenn eine Struktur einer neuen Variablen zugewiesen wird, werden alle Daten kopiert. Änderungen an der neuen Kopie wirken sich nicht auf die Daten in der ursprünglichen Kopie aus. Dies sollte beim Arbeiten mit Auflistungen von Werttypen wie Dictionary<string, myStruct> nicht vergessen werden.

  • Strukturen sind Werttypen, und Klassen sind Referenztypen.

  • Strukturen können im Gegensatz zu Klassen ohne den Operator new instanziiert werden.

  • Strukturen können Konstruktoren deklarieren, die über Parameter verfügen.

  • Eine Struktur ist nicht in der Lage, von einer anderen Struktur oder Klasse zu erben, und sie kann auch nicht die Basis einer Klasse sein. Alle Strukturen erben direkt von System.ValueType, welcher von System.Object erbt.

  • Eine Struktur kann Schnittstellen implementieren.

  • Eine Struktur kann als Typ verwendet werden, der NULL-Werte zulässt, und einer Struktur kann ein NULL-Wert zugewiesen werden.

Verwandte Abschnitte

Weitere Informationen:

Siehe auch

Referenz

Klassen und Strukturen (C#-Programmierhandbuch)

Klassen (C#-Programmierhandbuch)

Konzepte

C#-Programmierhandbuch

Strukturentwurf