short (C# リファレンス)
更新 : 2007 年 11 月
short キーワードは、次の表に示されたサイズと範囲に従って値を格納する整数データ型を示します。
データ型 |
範囲 |
サイズ |
.NET Framework 型 |
---|---|---|---|
short |
-32,768 ~ 32,767 |
符号付き 16 ビット整数 |
リテラル
short 変数の宣言と初期化の例を次に示します。
short x = 32767;
上のように宣言すると、整数リテラル 32767 は暗黙的に int から short に変換されます。整数リテラルを short の格納場所に格納できない場合は、コンパイル エラーになります。
オーバーロードされたメソッドを呼び出す場合は、キャストを使用する必要があります。たとえば、short パラメータと int パラメータを使用したオーバーロードされたメソッドがあるとします。
public static void SampleMethod(int i) {}
public static void SampleMethod(short s) {}
short キャストを使用すると、正しい型が呼び出されます。次に例を示します。
SampleMethod(5); // Calling the method with the int parameter
SampleMethod((short)5); // Calling the method with the short parameter
変換
short から int、long、float、double、decimal への暗黙の型変換が組み込まれています。
記憶サイズがより大きいリテラル以外の数値型は、short への暗黙の型変換ができません。整数型の記憶サイズについては、「整数型の一覧表 (C# リファレンス)」を参照してください。たとえば、2 つの short 変数 x と y があるとします。
short x = 5, y = 12;
次の代入ステートメントは、代入演算子の右側にある算術式が既定で intに評価されるため、コンパイル エラーになります。
short z = x + y; // Error: no conversion from int to short
このエラーを修正するには、キャストを使用します。
short z = (short)(x + y); // OK: explicit conversion
ただし、次のステートメントは使用できます。このステートメントでは、変換先の変数の記憶サイズは元のサイズ以上になります。
int m = x + y;
long n = x + y;
浮動小数点型から short への暗黙の型変換はありません。たとえば、次のステートメントは、明示的なキャストを使用しない場合、コンパイラ エラーになります。
short x = 3.0; // Error: no implicit conversion from double
short y = (short)3.0; // OK: explicit conversion
浮動小数点型と整数型の混在する算術式の詳細については、「float」と「double」を参照してください。
暗黙の数値変換規則の詳細については、「暗黙的な数値変換の一覧表 (C# リファレンス)」を参照してください。
C# 言語仕様
詳細については、「C# 言語仕様」の次のセクションを参照してください。
1.3 型と変数
4.1.5 整数型