SByte (translation from VPE for Csharp Reference)
The sbyte palavra-chave indica o tipo integral que armazena valores de acordo com o dimensionar e o intervalo mostrado na tabela a seguir.
Type (Tipo) |
Intervalo |
Size (Tamanho) |
Tipo .NET Framework |
---|---|---|---|
sbyte |
-128 a 127 |
Inteiro de 8 bit |
Literais
Você pode declarar e inicializar um sbyte variável dessa maneira:
sbyte sByte1 = 127;
Na declaração anterior, o número inteiro literal 127 é implicitamente convertido de int to sbyte. Se o número inteiro literal excede o intervalo de sbyte, 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 sbyte e int parâmetros:
public static void SampleMethod(int i) {}
public static void SampleMethod(sbyte b) {}
Usando o sbyte elenco garante que o tipo correto é chamado, por exemplo:
// Calling the method with the int parameter:
SampleMethod(5);
// Calling the method with the sbyte parameter:
SampleMethod((sbyte)5);
Conversões
Há uma conversão implícita predefinida de sbyte para curto, int, longo, float, duplo, or decimal.
Não é possível converter implicitamente nonliteral tipos numéricos do maior dimensionar de armazenamento em sbyte (consulte a Integral tabela Tipos (referência C#) para os armazenamento tamanhos de tipos integrais). Considere, por exemplo, os dois seguintes sbyte variáveis x e y:
sbyte x = 10, y = 20;
A demonstrativo 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.
sbyte z = x + y; // Error: conversion from int to sbyte
Para corrigir esse problema, converta a expressão sistema autônomo no exemplo a seguir:
sbyte z = (sbyte)(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:
sbyte x = 10, y = 20;
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 sbyte. Por exemplo, a instrução a seguir gera um erro do compilador, a menos que seja usada uma conversão explícita:
sbyte x = 3.0; // Error: no implicit conversion from double
sbyte y = (sbyte)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 sobre 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