uint (C#-Referenz)

Das Schlüsselwort uint kennzeichnet einen ganzzahligen Typ, der Werte anhand der Größe und des Bereichs speichert, die in der folgenden Tabelle gezeigt werden.

Typ Bereich Größe .NET Framework-Typ
uint 0 bis 4.294.967.295 32-Bit Ganzzahl ohne Vorzeichen System.UInt32

Hinweis Der Typ uint ist nicht CLS-kompatibel. Verwenden Sie nach Möglichkeit int.

Literale

Sie können eine uint-Variable deklarieren und initialisieren, indem Sie ihr ein dezimales Literal, ein hexadezimales Literal oder (beginnend mit C# 7) ein binäres Literal zuweisen. Wenn das Ganzzahlliteral außerhalb des Bereichs von uint liegt, d.h., wenn es kleiner als UInt32.MinValue oder größer als UInt32.MaxValue ist, tritt ein Kompilierungsfehler auf.

Im folgenden Beispiel werden Ganzzahlen wie 3.000.000.000, die als dezimale, hexadezimale und binäre Literale dargestellt werden, den uint-Werten zugewiesen.

uint uintValue1 = 3000000000;
Console.WriteLine(uintValue1);

uint uintValue2 = 0xB2D05E00;
Console.WriteLine(uintValue2);

uint uintValue3 = 0b1011_0010_1101_0000_0101_1110_0000_0000;
Console.WriteLine(uintValue3);
// The example displays the following output:
//          3000000000
//          3000000000
//          3000000000
Hinweis

Verwenden Sie das Präfix 0x oder 0X zum Kennzeichnen eines hexadezimalen Literals und das Präfix 0b oder 0B zum Kennzeichnen eines binären Literals. Dezimale Literale haben kein Präfix.

Ab C# 7 können Sie auch den Unterstrich, _, als Zifferntrennzeichen zum Verbessern der Lesbarkeit verwenden, wie im folgenden Beispiel veranschaulicht.

uint uintValue1 = 3_000_000_000;
Console.WriteLine(uintValue1);

uint uintValue2 = 0xB2D0_5E00;
Console.WriteLine(uintValue2);

uint uintValue3 = 0b1011_0010_1101_0000_0101_1110_0000_0000;
Console.WriteLine(uintValue3);
// The example displays the following output:
//          3000000000
//          3000000000
//          3000000000

Ganzzahlliterale können auch ein Suffix enthalten, das den Typ bezeichnet. Das Suffix U oder „u“ gibt entweder ein uint oder ulong an, abhängig vom numerischen Wert des Literals. Im folgenden Beispiel wird das u-Suffix verwendet, um eine ganze Zahl ohne Vorzeichen von beiden Typen zu kennzeichnen. Beachten Sie, dass das erste Literal ein uint ist, da sein Wert kleiner als UInt32.MaxValue ist, während das zweite ein ulong ist, da sein Wert größer als UInt32.MaxValue ist.

object value1 = 4000000000u;
Console.WriteLine($"{value1} ({4000000000u.GetType().Name})");
object value2 = 6000000000u;
Console.WriteLine($"{value2} ({6000000000u.GetType().Name})");

Wenn ein Ganzzahlliteral kein Suffix besitzt, ist sein Typ der erste der folgenden Typen, in dem sein Wert dargestellt werden kann:

  1. int
  2. uint
  3. long
  4. ulong

Konvertierungen

Es gibt eine vordefinierte implizite Konvertierung von uint in long, ulong, float, double oder decimal. Beispiel:

float myFloat = 4294967290;   // OK: implicit conversion to float  

Es gibt eine vordefinierte implizite Konvertierung von byte, ushort oder char in uint. Andernfalls müssen Sie eine Umwandlung verwenden. Die folgende Anweisung erzeugt z.B. einen Kompilierungsfehler ohne Umwandlung:

long aLong = 22;  
// Error -- no implicit conversion from long:  
uint uInt1 = aLong;   
// OK -- explicit conversion:  
uint uInt2 = (uint)aLong;  

Beachten Sie auch, dass es keine implizite Konvertierung von Gleitkomma-Datentypen in uint gibt. Die folgende Anweisung erzeugt z.B. einen Compilerfehler, außer es wird eine explizite Umwandlung verwendet:

// Error -- no implicit conversion from double:  
uint x = 3.0;  
// OK -- explicit conversion:  
uint y = (uint)3.0;   

Informationen zu arithmetischen Ausdrücken mit ganzzahligen und Gleitkommatypen finden Sie unter float und double.

Weitere Informationen zu impliziten numerischen Konvertierungsregeln finden Sie in der Tabelle für implizite numerische Konvertierungen.

C#-Programmiersprachenspezifikation

Weitere Informationen erhalten Sie unter C#-Sprachspezifikation. Die Sprachspezifikation ist die verbindliche Quelle für die Syntax und Verwendung von C#.

Siehe auch

UInt32
C#-Referenz
C#-Programmierhandbuch
C#-Schlüsselwörter
Tabelle ganzzahliger Typen
Tabelle integrierter Typen
Tabelle für implizite numerische Konvertierungen
Tabelle für explizite numerische Konvertierungen