UShort (referência de C#)

O ushort palavra-chave indica um tipo de dados 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

System.UInt16

Literais

Você pode declarar e inicializar um ushort variáveis como, por exemplo, este 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. Por exemplo, considere 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, uma conversão 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 instrução de atribuição a seguir 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, de onde a variável de destino tem o mesmo tamanho de armazenamento ou um tamanho maior do 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 integral, consulte float e double.

Para obter mais informações sobre regras de conversão numérica implícita, consulte o Implicit Numeric Conversions Table (C# Reference).

Especificação da linguagem C#

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

Consulte também

Referência

C# Keywords

Integral Types Table (C# Reference)

Built-In Types Table (C# Reference)

Implicit Numeric Conversions Table (C# Reference)

Explicit Numeric Conversions Table (C# Reference)

UInt16

Conceitos

C# Programming Guide

Outros recursos

C# Reference