ushort (C#-Referenz)
Das ushort-Schlüsselwort kennzeichnet einen ganzzahligen Datentyp, in dem Werte entsprechend der Größe und dem Bereich in der folgenden Tabelle gespeichert werden.
type |
Bereich |
Größe |
.NET Framework-Typ |
---|---|---|---|
ushort |
0 bis 65.535 |
Ganze 16-Bit-Zahl ohne Vorzeichen |
Literale
Eine ushort-Variable kann wie im folgenden Beispiel deklariert und initialisiert werden:
ushort myShort = 65535;
In der vorangehenden Deklaration wird das Ganzzahlliteral 65535 implizit von int in ushort konvertiert. Wenn der Bereich von ushort vom Ganzzahlliteral überschritten wird, tritt ein Kompilierungsfehler auf.
Beim Aufrufen überladener Methoden muss eine Typumwandlung erfolgen. Betrachten Sie z. B. die folgenden überladenen Methoden, die den ushort-Parameter und den int-Parameter verwenden:
public static void SampleMethod(int i) {}
public static void SampleMethod(ushort s) {}
Die Verwendung der ushort-Typumwandlung gewährleistet, dass der richtige Typ aufgerufen wird. Beispiel:
// Calls the method with the int parameter:
SampleMethod(5);
// Calls the method with the ushort parameter:
SampleMethod((ushort)5);
Konvertierungen
Es erfolgt eine vordefinierte implizite Konvertierung von ushort in int, uint, long, ulong, float, double oder decimal.
Es erfolgt eine vordefinierte implizite Konvertierung von byte oder char in ushort. Andernfalls muss für eine explizite Konvertierung eine Typumwandlung erfolgen. Betrachten Sie z. B. die beiden folgenden ushort-Variablen x und y:
ushort x = 5, y = 12;
Die folgende Zuweisungsanweisung generiert einen Kompilierungsfehler, da der arithmetische Ausdruck auf der rechten Seite des Zuweisungsoperators standardmäßig den Wert int annimmt.
ushort z = x + y; // Error: conversion from int to ushort
Verwenden Sie zur Problembehebung eine Typumwandlung:
ushort z = (ushort)(x + y); // OK: explicit conversion
Hier können jedoch die folgenden Anweisungen verwendet werden, bei denen die Zielvariable dieselbe oder eine höhere Speichergröße aufweist:
int m = x + y;
long n = x + y;
Beachten Sie auch, dass Gleitkommatypen nicht implizit in ushort konvertiert werden. Durch die folgende Anweisung wird z. B. ein Compilerfehler erzeugt, sofern keine explizite Typumwandlung stattfindet:
// Error -- no implicit conversion from double:
ushort x = 3.0;
// OK -- explicit conversion:
ushort y = (ushort)3.0;
Weitere Informationen zu arithmetischen Ausdrücken mit 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)