Partilhar via


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

System.SByte

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

Guia de Programação C#

Referência

Palavras-chave C#

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 

SByte

Outros recursos

Referência C#