Strukturen (C#-Programmierhandbuch)

Strukturen werden mit dem struct-Schlüsselwort definiert, beispielsweise:

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

Strukturen teilen sich einen großen Teil der Syntax mit Klassen, obwohl Strukturen eingeschränkter als Klassen sind:

  • Innerhalb einer Strukturdeklaration können Felder nicht initialisiert werden, außer Sie werden als const oder static deklariert.

  • Eine Struktur kann keinen Standardkonstruktor (ein Konstruktor ohne Parameter) oder Finalizer deklarieren.

  • Strukturen werden bei Zuweisung kopiert. Wenn eine Struktur einer neuen Variable zugewiesen wird, werden alle Daten kopiert, und jede Änderung an der neuen Kopie ändert nicht die Daten für das Original. Es ist wichtig, sich das zu merken, wenn Sie mit Auflistungen von Wertetypen wie Dictionary<string, myStruct> arbeiten.

  • Strukturen sind Werttypen, und Klassen sind Verweistypen.

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

  • Strukturen können Konstruktoren deklarieren, die Parameter besitzen.

  • Eine Struktur kann nicht von einer anderen Struktur oder Klasse erben, und sie kann auch nicht die Basis einer Klasse sein. Alle Strukturen erben direkt von System.ValueType, das von System.Object erbt.

  • Eine Struktur kann Schnittstellen implementieren.

  • Eine Struktur kann als ein Nullable-Typ verwendet werden und kann einen NULL-Wert zugewiesen bekommen.

Weitere Informationen finden Sie unter:

Siehe auch

C#-Programmierhandbuch
Klassen und Strukturen
Klassen