short (C#-Referenz)

Aktualisiert: November 2007

Das short-Schlüsselwort kennzeichnet einen ganzzahligen Datentyp, in dem Werte entsprechend der Größe und dem Bereich in der folgenden Tabelle gespeichert werden.

Typ

Bereich

Größe

.NET Framework-Typ

short

-32.768 bis 32.767

16-Bit-Ganzzahl mit Vorzeichen

System.Int16

Literale

Eine short-Variable kann wie im folgenden Beispiel deklariert und initialisiert werden:

short x = 32767;

In der vorangehenden Deklaration wird das Ganzzahlliteral 32767 implizit von int in short konvertiert. Wenn das Ganzzahlliteral zu groß für einen short-Speicherbereich ist, tritt ein Kompilierungsfehler auf.

Beim Aufrufen überladener Methoden muss eine Typumwandlung erfolgen. Betrachten Sie z. B. die folgenden überladenen Methoden, die den short-Parameter und den int-Parameter verwenden:

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

Die Verwendung der short-Typumwandlung gewährleistet, dass der richtige Typ aufgerufen wird. Beispiel:

SampleMethod(5);         // Calling the method with the int parameter
SampleMethod((short)5);  // Calling the method with the short parameter

Konvertierungen

Es erfolgt eine vordefinierte implizite Konvertierung von short in int, long, float, double oder decimal.

Es ist nicht möglich, numerische Typen mit höherer Speichergröße, die keine Literale sind, implizit in short zu konvertieren. (Informationen zu den Speichergrößen ganzzahliger Typen finden Sie unter Tabelle ganzzahliger Typen (C#-Referenz).) Betrachten Sie z. B. die beiden folgenden short-Variablen x und y:

short x = 5, y = 12;

Die folgende Zuweisungsanweisung erzeugt einen Kompilierungsfehler, da der arithmetische Ausdruck auf der rechten Seite des Zuweisungsoperators standardmäßig den Wert int annimmt.

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

Verwenden Sie zur Problembehebung eine Typumwandlung:

short z = (short)(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;

Gleitkommatypen werden nicht implizit in short konvertiert. Durch die folgende Anweisung wird z. B. ein Compilerfehler erzeugt, sofern keine explizite Typumwandlung stattfindet:

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

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 den folgenden Abschnitten von C#-Programmiersprachenspezifikation:

  • 1.3 Typen und Variablen

  • 4.1.5 Ganzzahlige Typen

Siehe auch

Konzepte

C#-Programmierhandbuch

Referenz

C#-Schlüsselwörter

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)

Int16

Weitere Ressourcen

C#-Referenz