Werttypen (C#-Referenz)

Die Werttypen sind in zwei Hauptkategorien unterteilt:

Strukturen werden in diese Kategorien eingeteilt:

Hauptfunktionen von Werttypen

Variablen, die auf Werttypen basieren, enthalten Werte direkt. Durch das Zuweisen einer Werttypvariablen zu einer anderen wird der enthaltene Wert kopiert. Dies unterscheidet sich von der Zuweisung von Verweistypvariablen. Dabei wird ein Verweis auf das Objekt, aber nicht das Objekt selbst kopiert.

Alle Werttypen werden implizit von <xref:System.ValueType?displayProperty=fullName> abgeleitet.

Im Gegensatz zu Verweistypen können Sie von Werttypen keinen neuen ableiten. Strukturen können aber wie Verweistypen Schnittstellen implementieren.

Im Gegensatz zu Verweistypen können Werttypen nicht den Wert null enthalten. Allerdings ermöglicht es die Funktion Nullable-Typ, dass Werttypen null zugewiesen werden können.

Jeder Werttyp hat einen impliziten Standardkonstruktor, der den Standardwert dieses Typs initialisiert. Informationen zu den Standardwerten von Werttypen finden Sie unter Tabelle für Standardwerte.

Hauptfunktionen von einfachen Typen

Alle einfachen Typen, die für C# wesentlichen Typen, sind Aliasse der Systemtypen aus dem .NET Framework. int ist z.B. ein Alias von <xref:System.Int32?displayProperty=fullName>. Eine vollständige Liste der Aliase finden Sie unter Tabelle integrierter Typen.

Konstante Ausdrücke, deren Operanden alle einfache Typkonstanten sind, werden zur Kompilierzeit ausgewertet.

Einfache Typen können mithilfe von Literalen initialisiert werden. „A“ ist beispielsweise ein Literal vom Typ char, und 2001 ist ein Literal vom Typ int.

Initialisieren von Werttypen

Lokale Variablen in C# müssen vor ihrer Verwendung initialisiert werden. Sie könnten eine lokale Variable beispielsweise ohne Initialisierung wie im folgenden Beispiel deklarieren:

int myInt;  

Sie können sie nicht verwenden, bis Sie sie initialisiert haben. Sie können sie mit der folgenden Anweisung initialisieren:

myInt = new int();  // Invoke default constructor for int type.  

Diese Anweisung entspricht der folgenden Anweisung:

myInt = 0;         // Assign an initial value, 0 in this example.  

Natürlich können Sie sich die Deklaration und die Initialisierung in derselben Anweisung befinden, wie in den folgenden Beispielen dargestellt:

int myInt = new int();  

– oder –

int myInt = 0;  

Durch die Verwendung des Operators new wird der Standardkonstruktor des angegebenen Typs aufgerufen und der Variablen der Standardwert zugewiesen. Im vorherigen Beispiel hat der Standardkonstruktor myInt den Wert 0 zugewiesen. Weitere Informationen zu Werten, die durch Aufrufen von Standardkonstruktoren zugewiesen werden, finden Sie unter Tabelle für Standardwerte.

Verwenden Sie bei benutzerdefinierten Typen new zum Aufrufen des Standardkonstruktors. Die folgende Anweisung ruft z.B. den Standardkonstruktor der Point-Struktur auf:

Point p = new Point(); // Invoke default constructor for the struct.  

Nach diesem Aufruf gilt die Struktur als definitiv zugewiesen. Das bedeutet, dass alle ihre Member mit ihren Standardwerten initialisiert werden.

Weitere Informationen zum Operator „new“ finden Sie unter new.

Informationen zum Formatieren der Ausgabe von numerischen Typen finden Sie unter Tabelle zur Formatierung numerischer Ergebnisse.

Siehe auch

C#-Referenz
C#-Programmierhandbuch
C#-Schlüsselwörter
Typen
Referenztabellen für Typen
Verweistypen