Share via


short (Referência de C#)

O short palavra-chave denota 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

short

-32.768 a 32.767

Inteiro assinado de 16 bits

Int16

Literais

Você pode declarar e inicializar um short variável semelhante ao exemplo:

short x = 32767;

Na declaração precedente, a literal inteira 32767 é convertido implicitamente de int para short. Se a literal inteira não cabe em um short o local de armazenamento, um erro de compilação ocorrerá.

Uma conversão deve ser usada quando chamada sobrecarregado métodos. Considere, por exemplo, o seguinte sobrecarregado métodos que usam short e int parâmetros:

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

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

SampleMethod(5);         // Calling the method with the int parameter
SampleMethod((short)5);  // Calling the method with the short parameter

Conversões

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

Você não pode converter implicitamente nonliteral tipos numéricos de maior tamanho de armazenamento para short (consulte Tabela de tipos integrais (Referência de C#) para os tamanhos de armazenamento dos tipos integrais). Considere, por exemplo, os dois seguintes short variáveis de x e y:

short x = 5, y = 12;

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

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

Para corrigir esse problema, use um cast:

short z = (short)(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;

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

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

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#)

Int16

Conceitos

Guia de Programação em C#

Outros recursos

Referência de C#