short (справочник по C#)
Ключевое слово short обозначает целочисленный тип данных, в котором хранятся значения, размер и диапазон которых приведен в следующей таблице.
Type |
Диапазон |
Размер |
Тип платформы .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#)). Рассмотрим, например, следующие две переменные переменные x и y типа short:
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#. Спецификация языка является предписывающим источником информации о синтаксисе и использовании языка C#.
См. также
Ссылки
Таблица целых типов (Справочник по C#)
Таблица встроенных типов (Справочник по C#)
Таблица неявных числовых преобразований (Справочник по C#)
Таблица явных числовых преобразований (Справочник по C#)
Основные понятия
Руководство по программированию на C#