Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In der folgenden Tabelle werden die in C# integrierten Werttypen aufgelistet:
In der folgenden Tabelle werden die in C# integrierten Verweistypen aufgelistet:
| C#-Typ-Schlüsselwort | .NET-Typ |
|---|---|
object |
System.Object |
string |
System.String |
delegate |
System.Delegate |
dynamic |
System.Object |
In den vorherigen Tabellen sind die meisten C#-Typstichwörter aus der linken Spalte Aliase für den entsprechenden .NET-Typ. Sie sind austauschbar. Die folgenden Deklarationen deklarieren beispielsweise Variablen desselben Typs:
int a = 123;
System.Int32 b = 123;
Der dynamic Typ ähnelt object. Die wichtigsten Unterschiede sind:
- Vorgänge für einen
dynamicAusdruck sind zur Laufzeit gebunden, nicht zur Kompilierungszeit. - Sie können
new dynamic()nicht verwenden. - Sie können keinen Typ vom typ
dynamicableiten.
Das delegate Schlüsselwort ist ein integriertes Referenztyp-Schlüsselwort, das einen typ deklariert, der von System.Delegate. Im Gegensatz zu den anderen integrierten Typstichwörtern delegate handelt es sich nicht um einen Alias für einen bestimmten .NET-Typ. Stattdessen werden benutzerdefinierte Typen deklariert, die vom abstrakten System.Delegate Typ abgeleitet sind. In ähnlicher Weise stellt das Laufzeitbindungsverhalten dar, dynamic anstatt ein direkter Alias für einen bestimmten .NET-Typ zu sein.
Das schlüsselwort void stellt das Fehlen eines Typs dar. Sie verwenden sie als Rückgabetyp einer Methode, die keinen Wert zurückgibt.
Die C#-Sprache enthält spezielle Regeln für die typen System.Span<T> und System.ReadOnlySpan<T>. Diese Typen werden nicht als integrierte Typen klassifiziert, da es keine C#-Schlüsselwörter gibt, die diesen Typen entsprechen. Die C#-Sprache definiert implizite Konvertierungen von Arraytypen und vom Zeichenfolgentyp in Span<T> und ReadOnlySpan<T>. Diese Konvertierungen integrieren Span Typen in natürlichere Programmierszenarien. Die folgenden Konvertierungen werden als implicit span conversions (implizite Span-Konvertierungen) definiert:
- Von einem eindimensionalen Array mit Elementtyp
EzuSystem.Span<E> - Von einem eindimensionalen Array mit dem Elementtyp
EzuSystem.ReadOnlySpan<U>, wenn fürEeine Kovarianzumwandlung oder eine Identitätsumwandlung zuUerfolgt. - Von
System.Span<E>zuSystem.ReadOnlySpan<U>, wenn fürEeine Kovarianzkonvertierung oder eine Identitätskonvertierung zuUerfolgt. - Von
System.ReadOnlySpan<E>zuSystem.ReadOnlySpan<U>, wenn fürEeine Kovarianzkonvertierung oder eine Identitätskonvertierung zuUerfolgt. - Von
stringbisSystem.ReadOnlySpan<char>
Der Compiler ignoriert niemals eine benutzerdefinierte Konvertierung, wenn eine entsprechende implizite Span-Konvertierung vorhanden ist. Implizite Span-Konvertierungen können auf den Empfängerparameter von Erweiterungsmitgliedern angewendet werden. Der Empfängerparameter wird durch das extension Schlüsselwort in einem Erweiterungselement angegeben. Der Empfängerparameter ist der erste Parameter einer Erweiterungsmethode mit dem this Modifizierer. Implizite Span-Konvertierungen werden für Methodengruppenkonvertierungen nicht berücksichtigt.