Поделиться через


short (справочник по C#)

Ключевое слово short обозначает целочисленный тип данных, в котором хранятся значения, размер и диапазон которых приведен в следующей таблице.

Тип

Диапазон

Размер

Тип платформы .NET Framework

short

От -32768 до 32767

16-разрядное знаковое целое число

Int16

Литералы

Переменную типа 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#)

Int16

Основные понятия

Руководство по программированию на C#

Другие ресурсы

Справочник по C#