ushort (справочник по C#)
Ключевое слово ushort обозначает целочисленный тип данных, в котором хранятся значения, размер и диапазон которых приведен в следующей таблице.
Тип |
Диапазон |
Размер |
Тип платформы .NET Framework |
---|---|---|---|
ushort |
От 0 до 65535 |
16-разрядное целое число без знака |
Литералы
Переменную типа ushort можно объявить и инициализировать, как показано в этом примере:
ushort myShort = 65535;
В приведенном выше объявлении целочисленный литерал 65535 неявным образом преобразуется из типа int в тип ushort. Если целочисленный литерал выходит за пределы диапазона значений типа ushort, то происходит ошибка компиляции.
При вызове перегруженных методов необходимо использовать приведение типов. Рассмотрите, например, следующие перегруженные методы, в которых используются параметры типов ushort и int:
public static void SampleMethod(int i) {}
public static void SampleMethod(ushort s) {}
Использование приведения типа ushort гарантирует вызов метода правильного типа, например:
// Calls the method with the int parameter:
SampleMethod(5);
// Calls the method with the ushort parameter:
SampleMethod((ushort)5);
Преобразования
Существует предопределенное преобразование типа ushort в int, uint, long, ulong, float, double и decimal.
Существует предопределенное неявное преобразование типа byte или char в ushort. В иных случаях для явного преобразования необходимо использовать приведение типов. Рассмотрим, например, следующие две переменные x и y типа ushort:
ushort x = 5, y = 12;
Следующая инструкция назначения приведет к ошибке компиляции, потому что арифметическое выражение, расположенное справа от оператора назначения, по умолчанию оценивается как имеющее тип int.
ushort z = x + y; // Error: conversion from int to ushort
Для устранения этой проблемы выполните преобразование:
ushort z = (ushort)(x + y); // OK: explicit conversion
Тем не менее, существует возможность использовать следующие инструкции, в которых переменная назначения имеет такой же или больший размер при хранении:
int m = x + y;
long n = x + y;
Обратите внимание, что неявного преобразования типов с плавающей запятой в тип ushort не существует. Например, следующая инструкция приводит к ошибке компилятора, если не выполнить явное приведение типов:
// Error -- no implicit conversion from double:
ushort x = 3.0;
// OK -- explicit conversion:
ushort y = (ushort)3.0;
Сведения об арифметических выражениях, в которых одновременно используются переменные типов с плавающей запятой и целочисленных типов, см. в разделе float и double.
Дополнительные сведения о правилах выполнения неявных числовых преобразований см. в разделе Таблица неявных числовых преобразований (Справочник по C#).
Спецификация языка C#
Дополнительные сведения см. в Спецификация языка C#. Спецификация языка является предписывающим источником информации о синтаксисе и использовании языка C#.
См. также
Ссылки
Таблица целых типов (Справочник по C#)
Таблица встроенных типов (Справочник по C#)
Таблица неявных числовых преобразований (Справочник по C#)
Таблица явных числовых преобразований (Справочник по C#)
Основные понятия
Руководство по программированию на C#