curto (translation from VPE for Csharp Reference)
The short palavra-chave denota um tipo de dados que armazena valores de acordo com o dimensionar e o intervalo mostrado na tabela a seguir.
Type (Tipo) |
Intervalo |
Size (Tamanho) |
Tipo .NET Framework |
---|---|---|---|
short |
-32.768 a 32.767 |
Inteiro de 16 bit |
Literais
Você pode declarar e inicializar um short variável, como neste exemplo:
short x = 32767;
Na declaração anterior, o número inteiro literal 32767 é implicitamente convertido de int to short. Se a literal de inteiro não couber em um short local de armazenamento, ocorrerá um erro de compilação.
Uma conversão deve ser usada quando chamada sobrecarregado métodos.Considere, por exemplo, que o seguinte sobrecarregado a métodos que uso short e int parâmetros:
public static void SampleMethod(int i) {}
public static void SampleMethod(short s) {}
Usando o short elenco 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, duplo, or decimal.
Não é possível converter implicitamente nonliteral tipos numéricos do maior dimensionar de armazenamento em short (consulte a Integral tabela Tipos (referência C#) para os armazenamento tamanhos de tipos integrais). Considere, por exemplo, os dois seguintes short variáveis 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 dimensionar de armazenamento ou um dimensionar 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 tipos integrais, consulte float and duplo.
Para obter mais informações em regras de conversão numérica implícito, consulte o Numérico tabela Conversions (referência C#) implícita.
Especificação da linguagem C#
Para obter mais informações, consulte as seções a seguir no Especificação da linguagem C#:
1.3 Tipos e variáveis
4.1.5 Tipos integrais
Consulte também
Conceitos
Referência
Integral tabela Tipos (referência C#)
Tabela tipos internas (referência C#)
Numérico tabela Conversions (referência C#) implícita
Numérico tabela Conversions (referência C#) explícita