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 weisen größtenteils die gleiche Syntax wie Klassen auf.Structs share most of the same syntax as classes. Der Name der Struktur muss ein gültiger C#- Bezeichnername sein.The name of the struct must be a valid C# identifier name. Strukturen sind auf folgende Weisen eingeschränkter als Klassen:Structs are more limited than classes in the following ways:

  • 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 Sammlungen von Wertetypen wie Dictionary<string, myStruct> arbeiten.This is important to remember when working with collections of value types such as Dictionary<string, myStruct>.
  • Im Gegensatz zu Klassen, die Verweistypen sind, sind Strukturen Werttypen.Structs are value types, unlike classes, which 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 ValueType, das von Object erbt.All structs inherit directly from ValueType, which inherits from 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