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

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

Тип

Диапазон

Размер

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

ushort

От 0 до 65535

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

UInt16

Литералы

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

UInt16

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

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

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

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