Tabelle für implizite numerische Konvertierungen (C#-Referenz)Implicit numeric conversions table (C# Reference)

Folgende Tabelle veranschaulicht vordefinierte implizite Konvertierungen zwischen numerischen .NET-Typen.The following table shows the predefined implicit conversions between .NET numeric types.

VonFrom BeschreibungTo
sbytesbyte short, int, long, float, double oder decimalshort, int, long, float, double, or decimal
bytebyte short, ushort, int, uint, long, ulong, float, double oder decimalshort, ushort, int, uint, long, ulong, float, double, or decimal
shortshort int, long, float, double oder decimalint, long, float, double, or decimal
ushortushort int, uint, long, ulong, float, double oder decimalint, uint, long, ulong, float, double, or decimal
intint long, float, double oder decimallong, float, double, or decimal
uintuint long, ulong, float, double oder decimallong, ulong, float, double, or decimal
longlong float, doubleoder decimalfloat, double, or decimal
charchar ushort, int, uint, long, ulong, float, double oder decimalushort, int, uint, long, ulong, float, double, or decimal
floatfloat double
ulongulong float, doubleoder decimalfloat, double, or decimal

HinweiseRemarks

  • Jeder integrale Typ kann implizit in einen beliebigen Gleitkommatyp konvertiert werden.Any integral type is implicitly convertible to any floating-point type.

  • Bei der Konvertierung von int, uint, long oder ulong in float und von long oder ulong in double kann Präzision verloren gehen, aber keine Größe.Precision but not magnitude might be lost in the conversions from int, uint, long, or ulong to float and from long or ulong to double.

  • Es gibt keine impliziten Konvertierungen für den Typ char.There are no implicit conversions to the char type.

  • Es gibt keine impliziten Konvertierungen zwischen den Typen float und double und dem Typ decimal.There are no implicit conversions between the float and double types and the decimal type.

  • Ein Wert eines konstanten Ausdrucks vom Typ int (z.B. ein Wert, der von einem integralen Literal dargestellt wird) kann in sbyte, byte, short, ushort, uint oder ulong konvertiert werden, solange er sich innerhalb des Bereichs des Zieltyps befindet:A value of a constant expression of type int (for example, a value represented by an integral literal) can be converted to sbyte, byte, short, ushort, uint, or ulong, provided it's within the range of the destination type:

    byte a = 13;    // Compiles
    byte b = 300;   // CS0031: Constant value '300' cannot be converted to a 'byte'
    

Weitere Informationen über implizite Konvertierungen finden Sie im Abschnitt Implicit conversions (Implizite Konvertierungen) der C#-Sprachspezifikation.For more information about implicit conversions, see the Implicit conversions section of the C# language specification.

Siehe auchSee also