Share via


ushort (Referência de C#)

O ushort palavra-chave indica um tipo de dados integral que armazena valores de acordo com o tamanho e o intervalo, mostrado na tabela a seguir.

Tipo

Intervalo

Tamanho

Tipo .NET Framework

ushort

0 a 65,535

Inteiro de 16 bits sem-sinal

UInt16

Literais

Você pode declarar e inicializar um ushort variável, como neste exemplo:

ushort myShort = 65535;

Na declaração anterior, o inteiro literal 65535 é convertido implicitamente de int para ushort. Se a literal inteira excede o intervalo de ushort, ocorrerá um erro de compilação.

Uma conversão deve ser usada ao chamar métodos sobrecarregados. Considere, por exemplo, o seguinte sobrecarregado métodos que usam ushort e int parâmetros:

public static void SampleMethod(int i) {}
public static void SampleMethod(ushort s) {}

Usando o ushort cast garante que o tipo correto é chamado, por exemplo:

// Calls the method with the int parameter:
SampleMethod(5);
// Calls the method with the ushort parameter:
SampleMethod((ushort)5);  

Conversões

Há uma conversão implícita predefinida de ushort para int, uint, longo, ulong, float, double, ou decimal.

Há uma conversão implícita predefinida de bytes ou char para ushort. Caso contrário, a projeção de deve ser usada para executar uma conversão explícita. Considere, por exemplo, os dois seguintes ushort variáveis de x e y:

ushort x = 5, y = 12;

A seguinte instrução de atribuição produzirá um erro de compilação, porque a expressão aritmética no lado direito do operador de atribuição é avaliada como int por padrão.

ushort z = x + y;   // Error: conversion from int to ushort

Para corrigir esse problema, use um cast:

ushort z = (ushort)(x + y);   // OK: explicit conversion 

No entanto é possível usar as instruções a seguir, onde a variável de destino tem o mesmo tamanho de armazenamento ou um tamanho maior de armazenamento:

int m = x + y;
long n = x + y;

Observe também que não há nenhuma conversão implícita de tipos de ponto flutuante para ushort. Por exemplo, a instrução a seguir gera um erro do compilador, a menos que seja usada uma conversão explícita:

// Error -- no implicit conversion from double:
ushort x = 3.0; 
// OK -- explicit conversion:
ushort y = (ushort)3.0;

Para obter informações sobre expressões aritméticas com tipos mistos de ponto flutuante e tipos integrais, consulte float e double.

Para obter mais informações sobre regras de conversão numérica implícito, consulte o Tabela de conversões numéricas implícitas (Referência de C#).

Especificação da linguagem C#

Para obter mais informações, consulte a Especificação da linguagem C#. A especificação da linguagem é a fonte definitiva para a sintaxe e o uso de C#.

Consulte também

Referência

Palavras-chave C#

Tabela de tipos integrais (Referência de C#)

Tabela de tipos internos (Referência de C#)

Tabela de conversões numéricas implícitas (Referência de C#)

Tabela de conversões numéricas explícitas (Referência de C#)

UInt16

Conceitos

Guia de Programação em C#

Outros recursos

Referência de C#