Strukturen (C#-Programmierhandbuch)Structs (C# Programming Guide)

Strukturen werden mit dem struct-Schlüsselwort definiert, beispielsweise:Structs are defined by using the struct keyword, for example:

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:Structs share most of the same syntax as classes, although structs are more limited than classes:

  • Innerhalb einer Strukturdeklaration können Felder nicht initialisiert werden, außer Sie werden als const oder static deklariert.Within a struct declaration, fields cannot be initialized unless they are declared as const or static.

  • Eine Struktur kann keinen Standardkonstruktor (ein Konstruktor ohne Parameter) oder Finalizer deklarieren.A struct cannot declare a default constructor (a constructor without parameters) or a finalizer.

  • Strukturen werden bei Zuweisung kopiert.Structs are copied on assignment. 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.When a struct is assigned to a new variable, all the data is copied, and any modification to the new copy does not change the data for the original copy. Es ist wichtig, sich das zu merken, wenn Sie mit Auflistungen von Wertetypen wie Dictionary<string, myStruct> arbeiten.This is important to remember when working with collections of value types such as Dictionary<string, myStruct>.

  • Strukturen sind Werttypen, und Klassen sind Verweistypen.Structs are value types and classes are reference types.

  • Strukturen können im Gegensatz zu Klassen ohne den Operator new instanziiert werden.Unlike classes, structs can be instantiated without using a new operator.

  • Strukturen können Konstruktoren deklarieren, die Parameter besitzen.Structs can declare constructors that have parameters.

  • Eine Struktur kann nicht von einer anderen Struktur oder Klasse erben, und sie kann auch nicht die Basis einer Klasse sein.A struct cannot inherit from another struct or class, and it cannot be the base of a class. Alle Strukturen erben direkt von System.ValueType, das von System.Object erbt.All structs inherit directly from System.ValueType, which inherits from System.Object.

  • Eine Struktur kann Schnittstellen implementieren.A struct can implement interfaces.

  • Eine Struktur kann als ein Nullable-Typ verwendet werden und kann einen NULL-Wert zugewiesen bekommen.A struct can be used as a nullable type and can be assigned a null value.

Weitere Informationen finden Sie unter: For more information:

Siehe auchSee Also

C#-ProgrammierhandbuchC# Programming Guide
Klassen und StrukturenClasses and Structs
KlassenClasses