ulong (C#-Referenz)
Das ulong-Schlüsselwort kennzeichnet einen ganzzahligen Typ, in dem Werte entsprechend der Größe und dem Bereich in der folgenden Tabelle gespeichert werden.
Typ |
Bereich |
Größe |
.NET Framework-Typ |
---|---|---|---|
ulong |
0 bis 18,446,744,073,709,551,615 |
Vorzeichenlose 64-Bit-Ganzzahl |
Literale
Eine ulong-Variable kann wie im folgenden Beispiel deklariert und initialisiert werden:
ulong uLong = 9223372036854775808;
Wenn ein Ganzzahlliteral kein Suffix besitzt, entspricht sein Typ dem ersten der folgenden Typen, mit dem sein Wert dargestellt werden kann: int, uint, long, ulong.Im obigen Beispiel ist es vom Typ ulong.
Suffixe können auch verwendet werden, um den ganzzahligen Typ gemäß den folgenden Regeln festzulegen:
Bei Verwendung von L oder l entspricht der Typ des Ganzzahlliterals je nach dessen Größe entweder long oder ulong.
Hinweis Der Kleinbuchstabe "l" kann als Suffix verwendet werden.In diesem Fall wird jedoch eine Compilerwarnung generiert, da der Buchstabe "l" leicht mit der Ziffer "1" verwechselt werden kann. Verwenden Sie zur besseren Unterscheidung den Großbuchstaben "L".
Bei Verwendung von U oder u entspricht der Typ des Ganzzahlliterals abhängig von der Größe entweder uint oder ulong.
Bei Verwendung von UL, ul, Ul, uL, LU, lu, Lu oder lU hat das Ganzzahlliteral den Typ ulong.
Durch die folgenden drei Anweisungen wird beispielsweise der Systemtyp UInt64 ausgegeben, der dem ulong-Alias entspricht:
Console.WriteLine(9223372036854775808L.GetType()); Console.WriteLine(123UL.GetType()); Console.WriteLine((123UL + 456).GetType());
Suffixe werden häufig beim Aufrufen überladener Methoden eingesetzt.Betrachten Sie z. B. die folgenden überladenen Methoden, die den ulong-Parameter und den int-Parameter verwenden:
public static void SampleMethod(int i) {}
public static void SampleMethod(ulong l) {}
Die Verwendung eines Suffixes mit dem ulong-Parameter gewährleistet, dass der richtige Typ aufgerufen wird. Beispiel:
SampleMethod(5); // Calling the method with the int parameter
SampleMethod(5UL); // Calling the method with the ulong parameter
Konvertierungen
Es erfolgt eine vordefinierte implizite Konvertierung von ulong in float, double oder decimal.
Es ist keine implizite Konvertierung von ulong in ganzzahlige Typen möglich.Ohne explizite Typumwandlung wird durch die folgende Anweisung z. B. ein Kompilierungsfehler generiert:
long long1 = 8UL; // Error: no implicit conversion from ulong
Es erfolgt eine vordefinierte implizite Konvertierung von Byte, ushort, uint oder char in ulong.
Darüber hinaus werden Gleitkommatypen nicht implizit in ulong konvertiert.Durch die folgende Anweisung wird z. B. ein Compilerfehler erzeugt, sofern keine explizite Typumwandlung stattfindet:
// Error -- no implicit conversion from double:
ulong x = 3.0;
// OK -- explicit conversion:
ulong y = (ulong)3.0;
Weitere Informationen über arithmetische Ausdrücke aus Gleitkomma- und ganzzahligen Typen finden Sie unter float und double.
Weitere Informationen zu impliziten numerischen Konvertierungsregeln finden Sie unter Tabelle für implizite numerische Konvertierungen (C#-Referenz).
C#-Programmiersprachenspezifikation
Weitere Informationen finden Sie in der C#-Sprachspezifikation. Die Sprachspezifikation ist die verbindliche Quelle für die Syntax und Verwendung von C#.
Siehe auch
Referenz
Tabelle ganzzahliger Typen (C#-Referenz)
Tabelle integrierter Typen (C#-Referenz)
Tabelle für implizite numerische Konvertierungen (C#-Referenz)
Tabelle für explizite numerische Konvertierungen (C#-Referenz)