Compartilhar via


sbyte (Referência de C#)

O sbyte palavra-chave indica o tipo integral que armazena valores de acordo com o tamanho e o intervalo, mostrado na tabela a seguir.

Tipo

Intervalo

Tamanho

Tipo .NET Framework

sbyte

-128 a 127

Inteiro assinado de 8 bits

SByte

Literais

Você pode declarar e inicializar um sbyte variável dessa maneira:

sbyte sByte1 = 127;

A declaração anterior, o inteiro literal 127 implicitamente é convertido de int para sbyte. Se a literal inteira 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, o seguinte sobrecarregado métodos que usam sbyte e int parâmetros:

public static void SampleMethod(int i) {}
public static void SampleMethod(sbyte b) {}

Usando o sbyte cast 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, double, ou decimal.

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

sbyte x = 10, y = 20;

A seguinte instrução de atribuição 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, como 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 tamanho de armazenamento ou um tamanho maior de 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 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#)

SByte

Conceitos

Guia de Programação em C#

Outros recursos

Referência de C#