ushort (C#-Referenz)

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

Typ Bereich Größe .NET Framework-Typ
ushort 0 bis 65.535 16-Bit-Ganzzahl ohne Vorzeichen <xref:System.UInt16?displayProperty=fullName>

Literale

Sie können eine ushort-Variable deklarieren und initialisieren, indem Sie ihr ein dezimales Literal, ein hexadezimales Literal oder (beginnend mit C# 7) ein binäres Literal zuweisen. Wenn Sich das Ganzzahlliteral außerhalb des Bereichs von ushort befindet (das bedeutet wenn es kleiner als <xref:System.UInt16.MinValue?displayProperty=fullName> oder größer als <xref:System.UInt16.MaxValue?displayProperty=fullName> ist), tritt ein Kompilierfehler auf.

Im folgenden Beispiel werden Ganzzahlen wie 65.034, die als dezimale, hexadezimale und binäre Literale dargestellt werden, implizit aus int in ushort-Werte konvertiert.

ushort ushortValue1 = 65034;
Console.WriteLine(ushortValue1);

ushort ushortValue2 = 0xFE0A;
Console.WriteLine(ushortValue2);

ushort ushortValue3 = 0b1111_1110_0000_1010;
Console.WriteLine(ushortValue3);
// The example displays the following output:
//          65034
//          65034
//          65034
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.

ushort ushortValue1 = 65_034;
Console.WriteLine(ushortValue1);

ushort ushortValue3 = 0b11111110_00001010;
Console.WriteLine(ushortValue3);
// The example displays the following output:
//          65034
//          65034

Überladungsauflösung des Compiler

Beim Aufrufen überladener Methoden muss eine Typumwandlung durchgeführt werden. Betrachten Sie z.B. die folgenden überladenen Methoden, die die Parameter ushort und int verwenden:

public static void SampleMethod(int i) {}  
public static void SampleMethod(ushort s) {}  

Die Verwendung der ushort-Umwandlung gewährleistet, dass der richtige Typ aufgerufen wird, wie z.B.:

// Calls the method with the int parameter:  
SampleMethod(5);  
// Calls the method with the ushort parameter:  
SampleMethod((ushort)5);    

Konvertierungen

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

Es gibt eine vordefinierte implizite Konvertierung von byte oder char in ushort. Andernfalls muss eine Umwandlung verwendet werden, um eine explizite Konvertierung durchzuführen. Betrachten Sie z.B. die folgenden beiden ushort-Variablen x und y:

ushort x = 5, y = 12;  

Die folgende Zuweisungsanweisung erzeugt einen Kompilierfehler, da der arithmetische Ausdruck auf der rechten Seite des Zuweisungsoperators standardmäßig int ergibt.

ushort z = x + y;   // Error: conversion from int to ushort  

Verwenden Sie eine Umwandlung, um dieses Problem zu lösen:

ushort z = (ushort)(x + y);   // OK: explicit conversion   

Es ist jedoch möglich, die folgenden Anweisungen zu verwenden, bei denen die Zielvariable über dieselbe oder eine größere Speichergröße verfügt:

int m = x + y;  
long n = x + y;  

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

// Error -- no implicit conversion from double:  
ushort x = 3.0;   
// OK -- explicit conversion:  
ushort y = (ushort)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

<xref:System.UInt16>
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