curto (referência de C#)

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

short

-32.768 a 32.767

Inteiro assinado de 16 bits

System.Int16

Literais

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

short x = 32767;

Na declaração anterior, o inteiro literal 32767 é convertido implicitamente de int para short. Se a literal de inteiro não couber em uma short o local de armazenamento, ocorre um erro de compilação.

Uma conversão deve ser usada quando os métodos de sobrecarga de chamada. Por exemplo, considere 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 Integral Types Table (C# Reference) 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, 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;

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

Int16

Conceitos

C# Programming Guide

Outros recursos

C# Reference