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 |
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érico implícito (referência de C#).
Especificação da linguagem C#
Para obter mais informações, consulte Especificação de linguagem do C# A especificação da linguagem é a fonte definitiva para a sintaxe e o uso da linguagem C#.
Consulte também
Referência
Tabela de tipos integral (referência de C#)
Tabela de tipos internos (referência de C#)
Tabela de conversões numérico implícito (referência de C#)
Tabela de conversões numérico explícita (referência de C#)