Freigeben über


Integrierte Typen (C#-Referenz)

In der folgenden Tabelle werden die in C# integrierten Werttypen aufgelistet:

C#-Typ-Schlüsselwort .NET-Typ
bool System.Boolean
byte System.Byte
sbyte System.SByte
char System.Char
decimal System.Decimal
double System.Double
float System.Single
int System.Int32
uint System.UInt32
nint System.IntPtr
nuint System.UIntPtr
long System.Int64
ulong System.UInt64
short System.Int16
ushort System.UInt16

In der folgenden Tabelle werden die in C# integrierten Verweistypen aufgelistet:

C#-Typschlüsselwort .NET-Typ
object System.Object
string System.String
delegate System.Delegate
dynamic System.Object

In den Tabellen oben ist das C#-Typschlüsselwort aus der linken Spalte (mit Ausnahme von delegate sowie dynamic) ein Alias 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 dynamic Ausdruck sind zur Laufzeit gebunden, nicht zur Kompilierungszeit.
  • Sie können new dynamic()nicht verwenden.
  • Sie können keinen Typ vom typ dynamic ableiten.

Das schlüsselwort delegate deklariert einen von System.Delegateabgeleiteten Typ. System.Delegate Typ ist ein abstrakter Typ.

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 E zu System.Span<E>
  • Von einem eindimensionalen Array mit dem Elementtyp E zu System.ReadOnlySpan<U>, wenn für E eine Kovarianzumwandlung oder eine Identitätsumwandlung zu U erfolgt.
  • Von System.Span<E> zu System.ReadOnlySpan<U>, wenn für E eine Kovarianzkonvertierung oder eine Identitätskonvertierung zu U erfolgt.
  • Von System.ReadOnlySpan<E> zu System.ReadOnlySpan<U>, wenn für E eine Kovarianzkonvertierung oder eine Identitätskonvertierung zu U erfolgt.
  • Von string bis System.ReadOnlySpan<char>

Der Compiler ignoriert niemals eine benutzerdefinierte Konvertierung, wenn eine entsprechende implizite Span-Konvertierung vorhanden ist. Implizite Span-Konvertierungen können auf das erste Argument der -Erweiterungsmethodenangewendet werden, dem Parameter mit dem this-Modifizierer. Implizite Span-Konvertierungen werden für Methodengruppenkonvertierungen nicht berücksichtigt.

Siehe auch