Convert.ToByte Método

Definição

Converte um valor especificado em um inteiro sem sinal de 8 bits.

Sobrecargas

ToByte(String)

Converte a representação de cadeia de caracteres especificada de um número em um inteiro sem sinal de 8 bits equivalente.

ToByte(UInt16)

Converte o valor do inteiro sem sinal de 16 bits especificado em um inteiro sem sinal de 8 bits equivalente.

ToByte(UInt32)

Converte o valor do inteiro sem sinal de 32 bits especificado em um inteiro sem sinal de 8 bits equivalente.

ToByte(String, Int32)

Converte a representação de cadeia de caracteres de um número em uma base especificada em um inteiro sem sinal de 8 bits equivalente.

ToByte(Object, IFormatProvider)

Converte o valor do objeto especificado em um inteiro sem sinal de 8 bits, usando as informações de formatação específicas da cultura especificadas.

ToByte(String, IFormatProvider)

Converte a representação de cadeia de caracteres especificada de um número em um inteiro sem sinal de 8 bits equivalente, usando as informações de formatação específicas da cultura especificada.

ToByte(Single)

Converte o valor do número de ponto flutuante de precisão simples especificado em um inteiro sem sinal de 8 bits equivalente.

ToByte(UInt64)

Converte o valor do inteiro sem sinal de 64 bits especificado em um inteiro sem sinal de 8 bits equivalente.

ToByte(SByte)

Converte o valor do número inteiro com sinal de 8 bits especificado em um número inteiro sem sinal de 8 bits equivalente.

ToByte(DateTime)

A chamada desse método sempre lança InvalidCastException.

ToByte(Int64)

Converte o valor do inteiro com sinal de 64 bits especificado em um inteiro sem sinal de 8 bits equivalente.

ToByte(Byte)

Retorna o inteiro sem sinal de 8 bits especificado; nenhuma conversão real é executada.

ToByte(Char)

Converte o valor do caractere Unicode especificado no inteiro sem sinal de 8 bits equivalente.

ToByte(Decimal)

Converte o valor do número decimal especificado em um inteiro sem sinal de 8 bits equivalente.

ToByte(Boolean)

Converte o valor booliano especificado no inteiro sem sinal de 8 bits equivalente.

ToByte(Int16)

Converte o valor do inteiro com sinal de 16 bits especificado em um inteiro sem sinal de 8 bits equivalente.

ToByte(Int32)

Converte o valor do inteiro com sinal de 32 bits especificado em um inteiro sem sinal de 8 bits equivalente.

ToByte(Double)

Converte o valor do número de ponto flutuante de precisão dupla especificado em um inteiro sem sinal de 8 bits equivalente.

ToByte(Object)

Converte o valor do objeto especificado para um inteiro sem sinal de 8 bits.

ToByte(String)

Origem:
Convert.cs
Origem:
Convert.cs
Origem:
Convert.cs

Converte a representação de cadeia de caracteres especificada de um número em um inteiro sem sinal de 8 bits equivalente.

public static byte ToByte (string value);
public static byte ToByte (string? value);

Parâmetros

value
String

Uma cadeia de caracteres que contém o número a ser convertido.

Retornos

Um inteiro não assinado de 8 bits equivalente a value, ou zero caso value seja null.

Exceções

value não consiste em um sinal opcional seguido de uma sequência de dígitos (de 0 a 9).

value representa um número menor que Byte.MinValue ou maior que Byte.MaxValue.

Exemplos

O exemplo a seguir define uma matriz de cadeia de caracteres e tenta converter cada cadeia de caracteres em um Byte. Observe que, enquanto uma null cadeia de caracteres é analisada como zero, String.Empty lança um FormatException. Observe também que, embora os espaços à esquerda e à direita sejam analisados com êxito, os símbolos de formatação, como símbolos de moeda, separadores de grupo ou separadores decimais, não fazem isso.

using System;

public class Example
{
   public static void Main()
   {
      String[] values = { null, "", "0xC9", "C9", "101", "16.3",
                          "$12", "$12.01", "-4", "1,032", "255",
                          "   16  " };
      foreach (var value in values) {
         try {
            byte number = Convert.ToByte(value);
            Console.WriteLine("'{0}' --> {1}",
                              value == null ? "<null>" : value, number);
         }
         catch (FormatException) {
            Console.WriteLine("Bad Format: '{0}'",
                              value == null ? "<null>" : value);
         }
         catch (OverflowException) {
            Console.WriteLine("OverflowException: '{0}'", value);
         }
      }
   }
}
// The example displays the following output:
//     '<null>' --> 0
//     Bad Format: ''
//     Bad Format: '0xC9'
//     Bad Format: 'C9'
//     '101' --> 101
//     Bad Format: '16.3'
//     Bad Format: '$12'
//     Bad Format: '$12.01'
//     OverflowException: '-4'
//     Bad Format: '1,032'
//     '255' --> 255
//     '   16  ' --> 16

Comentários

Usar o ToByte(String) método é equivalente a passar value para o Byte.Parse(String) método . value é interpretado usando as convenções de formatação da cultura atual.

Se preferir não manipular uma exceção se a conversão falhar, você poderá chamar o Byte.TryParse método em vez disso. Ele retorna um valor Boolean que indica se a conversão foi bem-sucedida ou falhou.

Confira também

Aplica-se a

.NET 9 e outras versões
Produto Versões
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

ToByte(UInt16)

Origem:
Convert.cs
Origem:
Convert.cs
Origem:
Convert.cs

Importante

Esta API não está em conformidade com CLS.

Converte o valor do inteiro sem sinal de 16 bits especificado em um inteiro sem sinal de 8 bits equivalente.

[System.CLSCompliant(false)]
public static byte ToByte (ushort value);

Parâmetros

value
UInt16

O inteiro não assinado de 16 bits a ser convertido.

Retornos

Um inteiro não assinado de 8 bits equivalente a value.

Atributos

Exceções

value é maior que Byte.MaxValue.

Exemplos

O exemplo a seguir converte uma matriz de inteiros de 16 bits Byte sem sinal em valores.

ushort[] numbers = { UInt16.MinValue, 121, 340, UInt16.MaxValue };
byte result;
foreach (ushort number in numbers)
{
   try {
      result = Convert.ToByte(number);
      Console.WriteLine("Converted the {0} value {1} to the {2} value {3}.",
                        number.GetType().Name, number,
                        result.GetType().Name, result);
   }
   catch (OverflowException) {
      Console.WriteLine("The {0} value {1} is outside the range of the Byte type.",
                        number.GetType().Name, number);
   }
}
// The example displays the following output:
//       Converted the UInt16 value 0 to the Byte value 0.
//       Converted the UInt16 value 121 to the Byte value 121.
//       The UInt16 value 340 is outside the range of the Byte type.
//       The UInt16 value 65535 is outside the range of the Byte type.

Aplica-se a

.NET 9 e outras versões
Produto Versões
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

ToByte(UInt32)

Origem:
Convert.cs
Origem:
Convert.cs
Origem:
Convert.cs

Importante

Esta API não está em conformidade com CLS.

Converte o valor do inteiro sem sinal de 32 bits especificado em um inteiro sem sinal de 8 bits equivalente.

[System.CLSCompliant(false)]
public static byte ToByte (uint value);

Parâmetros

value
UInt32

O inteiro sem sinal de 32 bits a ser convertido.

Retornos

Um inteiro não assinado de 8 bits equivalente a value.

Atributos

Exceções

value é maior que Byte.MaxValue.

Exemplos

O exemplo a seguir converte uma matriz de inteiros Byte sem sinal em valores.

uint[] numbers = { UInt32.MinValue, 121, 340, UInt32.MaxValue };
byte result;
foreach (uint number in numbers)
{
   try {
      result = Convert.ToByte(number);
      Console.WriteLine("Converted the {0} value {1} to the {2} value {3}.",
                        number.GetType().Name, number,
                        result.GetType().Name, result);
   }
   catch (OverflowException) {
      Console.WriteLine("The {0} value {1} is outside the range of the Byte type.",
                        number.GetType().Name, number);
   }
}
// The example displays the following output:
//       Converted the UInt32 value 0 to the Byte value 0.
//       Converted the UInt32 value 121 to the Byte value 121.
//       The UInt32 value 340 is outside the range of the Byte type.
//       The UInt32 value 4294967295 is outside the range of the Byte type.

Aplica-se a

.NET 9 e outras versões
Produto Versões
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

ToByte(String, Int32)

Origem:
Convert.cs
Origem:
Convert.cs
Origem:
Convert.cs

Converte a representação de cadeia de caracteres de um número em uma base especificada em um inteiro sem sinal de 8 bits equivalente.

public static byte ToByte (string value, int fromBase);
public static byte ToByte (string? value, int fromBase);

Parâmetros

value
String

Uma cadeia de caracteres que contém o número a ser convertido.

fromBase
Int32

A base do número em value, que deve ser 2, 8, 10 ou 16.

Retornos

Um inteiro sem sinal de 8 bits equivalente ao número em value, ou 0 (zero), se value for null.

Exceções

fromBase não é 2, 8, 10 ou 16.

- ou -

value, que representa um número não assinado de base não 10, é prefixado com um sinal negativo.

value contém um caractere que não é um dígito válido na base especificada por fromBase. A mensagem de exceção indica que não há dígitos a serem convertidos caso o primeiro caractere em value seja inválido; do contrário, a mensagem indica que value contém caracteres à direita inválidos.

value, que representa um número sem sinal de base 10, é prefixado com um sinal negativo.

- ou -

value representa um número menor que Byte.MinValue ou maior que Byte.MaxValue.

Exemplos

O exemplo a seguir tenta, como alternativa, interpretar uma matriz de cadeias de caracteres como a representação de valores binários, octais, decimais e hexadecimal.

using System;

public class Example
{
   public static void Main()
   {
      int[] bases = { 2, 8, 10, 16 };
      string[] values = { "-1", "1", "08", "0F", "11" , "12", "30",
                          "101", "255", "FF", "10000000", "80" };
      byte number;
      foreach (int numBase in bases)
      {
         Console.WriteLine("Base {0}:", numBase);
         foreach (string value in values)
         {
            try {
               number = Convert.ToByte(value, numBase);
               Console.WriteLine("   Converted '{0}' to {1}.", value, number);
            }
            catch (FormatException) {
               Console.WriteLine("   '{0}' is not in the correct format for a base {1} byte value.",
                                 value, numBase);
            }
            catch (OverflowException) {
               Console.WriteLine("   '{0}' is outside the range of the Byte type.", value);
            }
            catch (ArgumentException) {
               Console.WriteLine("   '{0}' is invalid in base {1}.", value, numBase);
            }
         }
      }
   }
}
// The example displays the following output:
//    Base 2:
//       '-1' is invalid in base 2.
//       Converted '1' to 1.
//       '08' is not in the correct format for a base 2 conversion.
//       '0F' is not in the correct format for a base 2 conversion.
//       Converted '11' to 3.
//       '12' is not in the correct format for a base 2 conversion.
//       '30' is not in the correct format for a base 2 conversion.
//       Converted '101' to 5.
//       '255' is not in the correct format for a base 2 conversion.
//       'FF' is not in the correct format for a base 2 conversion.
//       Converted '10000000' to 128.
//       '80' is not in the correct format for a base 2 conversion.
//    Base 8:
//       '-1' is invalid in base 8.
//       Converted '1' to 1.
//       '08' is not in the correct format for a base 8 conversion.
//       '0F' is not in the correct format for a base 8 conversion.
//       Converted '11' to 9.
//       Converted '12' to 10.
//       Converted '30' to 24.
//       Converted '101' to 65.
//       Converted '255' to 173.
//       'FF' is not in the correct format for a base 8 conversion.
//       '10000000' is outside the range of the Byte type.
//       '80' is not in the correct format for a base 8 conversion.
//    Base 10:
//       '-1' is outside the range of the Byte type.
//       Converted '1' to 1.
//       Converted '08' to 8.
//       '0F' is not in the correct format for a base 10 conversion.
//       Converted '11' to 11.
//       Converted '12' to 12.
//       Converted '30' to 30.
//       Converted '101' to 101.
//       Converted '255' to 255.
//       'FF' is not in the correct format for a base 10 conversion.
//       '10000000' is outside the range of the Byte type.
//       Converted '80' to 80.
//    Base 16:
//       '-1' is invalid in base 16.
//       Converted '1' to 1.
//       Converted '08' to 8.
//       Converted '0F' to 15.
//       Converted '11' to 17.
//       Converted '12' to 18.
//       Converted '30' to 48.
//       '101' is outside the range of the Byte type.
//       '255' is outside the range of the Byte type.
//       Converted 'FF' to 255.
//       '10000000' is outside the range of the Byte type.
//       Converted '80' to 128.

Comentários

Caso fromBase seja 16, é possível prefixar o número especificado pelo parâmetro value com "0x" ou "0X".

Como o Byte tipo de dados dá suporte apenas a valores não assinados, o ToByte(String, Int32) método pressupõe que value seja expresso usando representação binária não assinada. Em outras palavras, todos os oito bits são usados para representar o valor numérico e um bit de sinal está ausente. Como resultado, é possível escrever um código no qual um valor de byte assinado que está fora do intervalo do tipo de Byte dados é convertido em um Byte valor sem que o método gere uma exceção. O exemplo a seguir converte em sua representação de cadeia de caracteres MinValue hexadecimal e, em seguida, chama o ToByte(String, Int32) método . Em vez de gerar uma exceção, o método exibe a mensagem "0x80 converte em 128".

// Create a hexadecimal value out of range of the Byte type.
string value = SByte.MinValue.ToString("X");
// Convert it back to a number.
try
{
   byte number = Convert.ToByte(value, 16);
   Console.WriteLine("0x{0} converts to {1}.", value, number);
}
catch (OverflowException)
{
   Console.WriteLine("Unable to convert '0x{0}' to a byte.", value);
}

Durante a realização de operações binárias ou conversões numéricas, sempre é responsabilidade do desenvolvedor verificar se um método ou operador está usando a representação numérica apropriada para interpretar um valor específico. O exemplo a seguir ilustra uma técnica para garantir que o método não use inadequadamente uma representação binária sem sinal quando converte uma representação de cadeia de caracteres hexadecimal em um Byte valor. O exemplo determina se um valor representa um inteiro assinado ou não assinado enquanto converte esse valor na representação da cadeia de caracteres. Quando o exemplo converte o valor de volta em um Byte valor, ele verifica se o valor original era um inteiro com sinal. Nesse caso, e se seu bit de alta ordem for definido (o que indica que o valor é negativo e que ele usa o complemento de dois em vez de uma representação binária não assinada), o método gera uma exceção.

// Create a negative hexadecimal value out of range of the Byte type.
sbyte sourceNumber = SByte.MinValue;
bool isSigned = Math.Sign((sbyte)sourceNumber.GetType().GetField("MinValue").GetValue(null)) == -1;
string value = sourceNumber.ToString("X");
byte targetNumber;
try
{
   targetNumber = Convert.ToByte(value, 16);
   if (isSigned && ((targetNumber & 0x80) != 0))
      throw new OverflowException();
   else
      Console.WriteLine("0x{0} converts to {1}.", value, targetNumber);
}
catch (OverflowException)
{
   Console.WriteLine("Unable to convert '0x{0}' to an unsigned byte.", value);
}
// Displays the following to the console:
//    Unable to convert '0x80' to an unsigned byte.

Aplica-se a

.NET 9 e outras versões
Produto Versões
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

ToByte(Object, IFormatProvider)

Origem:
Convert.cs
Origem:
Convert.cs
Origem:
Convert.cs

Converte o valor do objeto especificado em um inteiro sem sinal de 8 bits, usando as informações de formatação específicas da cultura especificadas.

public static byte ToByte (object value, IFormatProvider provider);
public static byte ToByte (object? value, IFormatProvider? provider);

Parâmetros

value
Object

Um objeto que implementa a interface do IConvertible.

provider
IFormatProvider

Um objeto que fornece informações de formatação específicas da cultura.

Retornos

Um inteiro não assinado de 8 bits equivalente a value, ou zero caso value seja null.

Exceções

O value não está no formato de propriedade para um valor Byte.

value não implementa IConvertible.

- ou -

Não há suporte à conversão do value para o tipo Byte.

value representa um número menor que Byte.MinValue ou maior que Byte.MaxValue.

Exemplos

O exemplo a seguir define uma classe ByteString que implementa a interface IConvertible. A classe armazena a representação de cadeia de caracteres de um valor de byte junto com um campo de sinal, para que ela possa representar valores de bytes assinados e não assinados.

using System;
using System.Globalization;

public enum SignBit { Negative=-1, Zero=0, Positive=1 };

public struct ByteString : IConvertible
{
   private SignBit signBit;
   private string byteString;

   public SignBit Sign
   {
      set { signBit = value; }
      get { return signBit; }
   }

   public string Value
   {
      set {
         if (value.Trim().Length > 2)
            throw new ArgumentException("The string representation of a byte cannot have more than two characters.");
         else
            byteString = value;
      }
      get { return byteString; }
   }

   // IConvertible implementations.
   public TypeCode GetTypeCode() {
      return TypeCode.Object;
   }

   public bool ToBoolean(IFormatProvider provider)
   {
      if (signBit == SignBit.Zero)
         return false;
      else
         return true;
   }

   public byte ToByte(IFormatProvider provider)
   {
      if (signBit == SignBit.Negative)
         throw new OverflowException(String.Format("{0} is out of range of the Byte type.", Convert.ToSByte(byteString, 16)));
      else
         return Byte.Parse(byteString, NumberStyles.HexNumber);
   }

   public char ToChar(IFormatProvider provider)
   {
      if (signBit == SignBit.Negative) {
         throw new OverflowException(String.Format("{0} is out of range of the Char type.", Convert.ToSByte(byteString, 16)));
      }
      else {
         byte byteValue = Byte.Parse(this.byteString, NumberStyles.HexNumber);
         return Convert.ToChar(byteValue);
      }
   }

   public DateTime ToDateTime(IFormatProvider provider)
   {
      throw new InvalidCastException("ByteString to DateTime conversion is not supported.");
   }

   public decimal ToDecimal(IFormatProvider provider)
   {
      if (signBit == SignBit.Negative)
      {
         sbyte byteValue = SByte.Parse(byteString, NumberStyles.HexNumber);
         return Convert.ToDecimal(byteValue);
      }
      else
      {
         byte byteValue = Byte.Parse(byteString, NumberStyles.HexNumber);
         return Convert.ToDecimal(byteValue);
      }
   }

   public double ToDouble(IFormatProvider provider)
   {
      if (signBit == SignBit.Negative)
         return Convert.ToDouble(SByte.Parse(byteString, NumberStyles.HexNumber));
      else
         return Convert.ToDouble(Byte.Parse(byteString, NumberStyles.HexNumber));
   }

   public short ToInt16(IFormatProvider provider)
   {
      if (signBit == SignBit.Negative)
         return Convert.ToInt16(SByte.Parse(byteString, NumberStyles.HexNumber));
      else
         return Convert.ToInt16(Byte.Parse(byteString, NumberStyles.HexNumber));
   }

   public int ToInt32(IFormatProvider provider)
   {
      if (signBit == SignBit.Negative)
         return Convert.ToInt32(SByte.Parse(byteString, NumberStyles.HexNumber));
      else
         return Convert.ToInt32(Byte.Parse(byteString, NumberStyles.HexNumber));
   }

   public long ToInt64(IFormatProvider provider)
   {
      if (signBit == SignBit.Negative)
         return Convert.ToInt64(SByte.Parse(byteString, NumberStyles.HexNumber));
      else
         return Convert.ToInt64(Byte.Parse(byteString, NumberStyles.HexNumber));
   }

   public sbyte ToSByte(IFormatProvider provider)
   {
      if (signBit == SignBit.Negative)
         try {
            return Convert.ToSByte(Byte.Parse(byteString, NumberStyles.HexNumber));
         }
         catch (OverflowException e) {
            throw new OverflowException(String.Format("{0} is outside the range of the SByte type.",
                                                   Byte.Parse(byteString, NumberStyles.HexNumber)), e);
         }
      else
         return SByte.Parse(byteString, NumberStyles.HexNumber);
   }

   public float ToSingle(IFormatProvider provider)
   {
      if (signBit == SignBit.Negative)
         return Convert.ToSingle(SByte.Parse(byteString, NumberStyles.HexNumber));
      else
         return Convert.ToSingle(Byte.Parse(byteString, NumberStyles.HexNumber));
   }

   public string ToString(IFormatProvider provider)
   {
      return "0x" + this.byteString;
   }

   public object ToType(Type conversionType, IFormatProvider provider)
   {
      switch (Type.GetTypeCode(conversionType))
      {
         case TypeCode.Boolean:
            return this.ToBoolean(null);
         case TypeCode.Byte:
            return this.ToByte(null);
         case TypeCode.Char:
            return this.ToChar(null);
         case TypeCode.DateTime:
            return this.ToDateTime(null);
         case TypeCode.Decimal:
            return this.ToDecimal(null);
         case TypeCode.Double:
            return this.ToDouble(null);
         case TypeCode.Int16:
            return this.ToInt16(null);
         case TypeCode.Int32:
            return this.ToInt32(null);
         case TypeCode.Int64:
            return this.ToInt64(null);
         case TypeCode.Object:
            if (typeof(ByteString).Equals(conversionType))
               return this;
            else
               throw new InvalidCastException(String.Format("Conversion to a {0} is not supported.", conversionType.Name));
         case TypeCode.SByte:
            return this.ToSByte(null);
         case TypeCode.Single:
            return this.ToSingle(null);
         case TypeCode.String:
            return this.ToString(null);
         case TypeCode.UInt16:
            return this.ToUInt16(null);
         case TypeCode.UInt32:
            return this.ToUInt32(null);
         case TypeCode.UInt64:
            return this.ToUInt64(null);
         default:
            throw new InvalidCastException(String.Format("Conversion to {0} is not supported.", conversionType.Name));
      }
   }

   public UInt16 ToUInt16(IFormatProvider provider)
   {
      if (signBit == SignBit.Negative)
         throw new OverflowException(String.Format("{0} is outside the range of the UInt16 type.",
                                                   SByte.Parse(byteString, NumberStyles.HexNumber)));
      else
         return Convert.ToUInt16(Byte.Parse(byteString, NumberStyles.HexNumber));
   }

   public UInt32 ToUInt32(IFormatProvider provider)
   {
      if (signBit == SignBit.Negative)
         throw new OverflowException(String.Format("{0} is outside the range of the UInt32 type.",
                                                   SByte.Parse(byteString, NumberStyles.HexNumber)));
      else
         return Convert.ToUInt32(Byte.Parse(byteString, NumberStyles.HexNumber));
   }

   public UInt64 ToUInt64(IFormatProvider provider)
   {
      if (signBit == SignBit.Negative)
         throw new OverflowException(String.Format("{0} is outside the range of the UInt64 type.",
                                                   SByte.Parse(byteString, NumberStyles.HexNumber)));
      else
         return Convert.ToUInt64(Byte.Parse(byteString, NumberStyles.HexNumber));
   }
}

O exemplo a seguir cria uma instância de vários ByteString objetos e chama o ToByte(Object, IFormatProvider) método para convertê-los em valores de bytes. Ele ilustra que o ToByte(Object, IFormatProvider) método encapsula uma chamada para o IConvertible.ToByte método do objeto a ser convertido.

public class Class1
{
   public static void Main()
   {
      byte positiveByte = 216;
      sbyte negativeByte = -101;

      ByteString positiveString = new ByteString();
      positiveString.Sign = (SignBit) Math.Sign(positiveByte);
      positiveString.Value = positiveByte.ToString("X2");

      ByteString negativeString = new ByteString();
      negativeString.Sign = (SignBit) Math.Sign(negativeByte);
      negativeString.Value = negativeByte.ToString("X2");

      try {
         Console.WriteLine("'{0}' converts to {1}.", positiveString.Value, Convert.ToByte(positiveString));
      }
      catch (OverflowException) {
         Console.WriteLine("0x{0} is outside the range of the Byte type.", positiveString.Value);
      }

      try {
         Console.WriteLine("'{0}' converts to {1}.", negativeString.Value, Convert.ToByte(negativeString));
      }
      catch (OverflowException) {
         Console.WriteLine("0x{0} is outside the range of the Byte type.", negativeString.Value);
      }
   }
}
// The example displays the following output:
//       'D8' converts to 216.
//       0x9B is outside the range of the Byte type.

Comentários

provider permite que o usuário especifique informações de conversão específicas da cultura sobre o conteúdo de value. Os tipos de base ignoram provider; no entanto, o parâmetro pode ser usado caso value seja um tipo definido pelo usuário que implementa a interface IConvertible.

Aplica-se a

.NET 9 e outras versões
Produto Versões
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

ToByte(String, IFormatProvider)

Origem:
Convert.cs
Origem:
Convert.cs
Origem:
Convert.cs

Converte a representação de cadeia de caracteres especificada de um número em um inteiro sem sinal de 8 bits equivalente, usando as informações de formatação específicas da cultura especificada.

public static byte ToByte (string value, IFormatProvider provider);
public static byte ToByte (string? value, IFormatProvider? provider);

Parâmetros

value
String

Uma cadeia de caracteres que contém o número a ser convertido.

provider
IFormatProvider

Um objeto que fornece informações de formatação específicas da cultura.

Retornos

Um inteiro não assinado de 8 bits equivalente a value, ou zero caso value seja null.

Exceções

value não consiste em um sinal opcional seguido de uma sequência de dígitos (de 0 a 9).

value representa um número menor que Byte.MinValue ou maior que Byte.MaxValue.

Exemplos

O exemplo a seguir cria um objeto personalizado NumberFormatInfo que define o sinal positivo como "pos" e o sinal negativo como "neg", que ele usa em chamadas para o ToByte(String, IFormatProvider) método . Em seguida, ele chama o ToByte(String, IFormatProvider) método repetidamente para converter cada elemento em uma matriz de cadeia de caracteres em um Byte valor.

using System;
using System.Globalization;

public class Example
{
   public static void Main()
   {
      // Create a NumberFormatInfo object and set several of its
      // properties that apply to unsigned bytes.
      NumberFormatInfo provider = new NumberFormatInfo();

      // These properties affect the conversion.
      provider.PositiveSign = "pos ";
      provider.NegativeSign = "neg ";

      // This property does not affect the conversion.
      // The input string cannot have a decimal separator.
      provider.NumberDecimalSeparator = ".";

      // Define an array of numeric strings.
      string[] numericStrings = { "234", "+234", "pos 234", "234.", "255",
                                  "256", "-1" };

      foreach (string numericString in numericStrings)
      {
         Console.Write("'{0,-8}' ->   ", numericString);
         try {
            byte number = Convert.ToByte(numericString, provider);
            Console.WriteLine(number);
         }
         catch (FormatException) {
            Console.WriteLine("Incorrect Format");
         }
         catch (OverflowException) {
            Console.WriteLine("Overflows a Byte");
         }
      }
   }
}
// The example displays the following output:
//       '234     ' ->   234
//       '+234    ' ->   Incorrect Format
//       'pos 234 ' ->   234
//       '234.    ' ->   Incorrect Format
//       '255     ' ->   255
//       '256     ' ->   Overflows a Byte
//       '-1      ' ->   Incorrect Format

Comentários

provider é uma IFormatProvider instância que obtém um NumberFormatInfo objeto . O objeto NumberFormatInfo fornece informações específicas da cultura sobre o formato de value. Caso provider seja null, o objeto NumberFormatInfo da cultura atual é usado.

Se preferir não manipular uma exceção se a conversão falhar, você poderá chamar o Byte.TryParse método em vez disso. Ele retorna um valor Boolean que indica se a conversão foi bem-sucedida ou falhou.

Confira também

Aplica-se a

.NET 9 e outras versões
Produto Versões
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

ToByte(Single)

Origem:
Convert.cs
Origem:
Convert.cs
Origem:
Convert.cs

Converte o valor do número de ponto flutuante de precisão simples especificado em um inteiro sem sinal de 8 bits equivalente.

public static byte ToByte (float value);

Parâmetros

value
Single

Um número de ponto flutuante de precisão simples.

Retornos

value, arredondado para o próximo inteiro sem sinal de 8 bits. Caso value esteja entre dois números inteiros, o número par é retornado; ou seja, 4,5 é convertido em 4 e 5,5 é convertido em 6.

Exceções

value é maior que Byte.MaxValue ou menor que Byte.MinValue.

Exemplos

O exemplo a seguir converte um Single valor em um Byte.

public void ConvertByteSingle(byte byteVal) {
    float floatVal;

    // Byte to float conversion will not overflow.
    floatVal = System.Convert.ToSingle(byteVal);
    System.Console.WriteLine("The byte as a float is {0}.",
        floatVal);

    // Float to byte conversion can overflow.
    try {
        byteVal = System.Convert.ToByte(floatVal);
        System.Console.WriteLine("The float as a byte is {0}.",
            byteVal);
    }
    catch (System.OverflowException) {
        System.Console.WriteLine(
            "The float value is too large for a byte.");
    }
}

Confira também

Aplica-se a

.NET 9 e outras versões
Produto Versões
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

ToByte(UInt64)

Origem:
Convert.cs
Origem:
Convert.cs
Origem:
Convert.cs

Importante

Esta API não está em conformidade com CLS.

Converte o valor do inteiro sem sinal de 64 bits especificado em um inteiro sem sinal de 8 bits equivalente.

[System.CLSCompliant(false)]
public static byte ToByte (ulong value);

Parâmetros

value
UInt64

O inteiro sem sinal de 64 bits a ser convertido.

Retornos

Um inteiro não assinado de 8 bits equivalente a value.

Atributos

Exceções

value é maior que Byte.MaxValue.

Exemplos

O exemplo a seguir converte uma matriz de inteiros longos Byte sem sinal em valores.

ulong[] numbers= { UInt64.MinValue, 121, 340, UInt64.MaxValue };
byte result;
foreach (ulong number in numbers)
{
   try {
      result = Convert.ToByte(number);
      Console.WriteLine("Converted the {0} value {1} to the {2} value {3}.",
                        number.GetType().Name, number,
                        result.GetType().Name, result);
   }
   catch (OverflowException)
   {
      Console.WriteLine("The {0} value {1} is outside the range of the Byte type.",
                        number.GetType().Name, number);
   }
}
// The example displays the following output:
//       Converted the UInt64 value 0 to the Byte value 0.
//       Converted the UInt64 value 121 to the Byte value 121.
//       The UInt64 value 340 is outside the range of the Byte type.
//       The UInt64 value 18446744073709551615 is outside the range of the Byte type.

Aplica-se a

.NET 9 e outras versões
Produto Versões
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

ToByte(SByte)

Origem:
Convert.cs
Origem:
Convert.cs
Origem:
Convert.cs

Importante

Esta API não está em conformidade com CLS.

Converte o valor do número inteiro com sinal de 8 bits especificado em um número inteiro sem sinal de 8 bits equivalente.

[System.CLSCompliant(false)]
public static byte ToByte (sbyte value);

Parâmetros

value
SByte

O inteiro com sinal de 8 bits a ser convertido.

Retornos

Um inteiro não assinado de 8 bits equivalente a value.

Atributos

Exceções

value é menor que Byte.MinValue.

Exemplos

O exemplo a seguir converte uma matriz de SByte valores em Byte valores.

sbyte[] numbers = { SByte.MinValue, -1, 0, 10, SByte.MaxValue };
byte result;
foreach (sbyte number in numbers)
{
   try {
      result = Convert.ToByte(number);
      Console.WriteLine("Converted the {0} value {1} to the {2} value {3}.",
                        number.GetType().Name, number,
                        result.GetType().Name, result);
   }
   catch (OverflowException)
   {
      Console.WriteLine("The {0} value {1} is outside the range of the Byte type.",
                        number.GetType().Name, number);
   }
}
// The example displays the following output:
//       The SByte value -128 is outside the range of the Byte type.
//       The SByte value -1 is outside the range of the Byte type.
//       Converted the SByte value 0 to the Byte value 0.
//       Converted the SByte value 10 to the Byte value 10.
//       Converted the SByte value 127 to the Byte value 127.

Aplica-se a

.NET 9 e outras versões
Produto Versões
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

ToByte(DateTime)

Origem:
Convert.cs
Origem:
Convert.cs
Origem:
Convert.cs

A chamada desse método sempre lança InvalidCastException.

public static byte ToByte (DateTime value);

Parâmetros

value
DateTime

O valor de data e tempo a ser convertido.

Retornos

Não há suporte para esta conversão. Nenhum valor é retornado.

Exceções

Não há suporte para esta conversão.

Aplica-se a

.NET 9 e outras versões
Produto Versões
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1

ToByte(Int64)

Origem:
Convert.cs
Origem:
Convert.cs
Origem:
Convert.cs

Converte o valor do inteiro com sinal de 64 bits especificado em um inteiro sem sinal de 8 bits equivalente.

public static byte ToByte (long value);

Parâmetros

value
Int64

O inteiro com sinal de 64 bits a ser convertido.

Retornos

Um inteiro não assinado de 8 bits equivalente a value.

Exceções

value é menor que Byte.MinValue ou maior que Byte.MaxValue.

Exemplos

O exemplo a seguir converte uma matriz de Int64 valores em Byte valores.

long[] numbers = { Int64.MinValue, -1, 0, 121, 340, Int64.MaxValue };
byte result;
foreach (long number in numbers)
{
   try {
      result = Convert.ToByte(number);
      Console.WriteLine("Converted the {0} value {1} to the {2} value {3}.",
                        number.GetType().Name, number,
                        result.GetType().Name, result);
   }
   catch (OverflowException) {
      Console.WriteLine("The {0} value {1} is outside the range of the Byte type.",
                        number.GetType().Name, number);
   }
}
// The example displays the following output:
//       The Int64 value -9223372036854775808 is outside the range of the Byte type.
//       The Int64 value -1 is outside the range of the Byte type.
//       Converted the Int64 value 0 to the Byte value 0.
//       Converted the Int64 value 121 to the Byte value 121.
//       The Int64 value 340 is outside the range of the Byte type.
//       The Int64 value 9223372036854775807 is outside the range of the Byte type.

Aplica-se a

.NET 9 e outras versões
Produto Versões
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

ToByte(Byte)

Origem:
Convert.cs
Origem:
Convert.cs
Origem:
Convert.cs

Retorna o inteiro sem sinal de 8 bits especificado; nenhuma conversão real é executada.

public static byte ToByte (byte value);

Parâmetros

value
Byte

O inteiro sem sinal de 8 bits a ser retornado.

Retornos

value é retornado inalterado.

Aplica-se a

.NET 9 e outras versões
Produto Versões
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

ToByte(Char)

Origem:
Convert.cs
Origem:
Convert.cs
Origem:
Convert.cs

Converte o valor do caractere Unicode especificado no inteiro sem sinal de 8 bits equivalente.

public static byte ToByte (char value);

Parâmetros

value
Char

O caractere Unicode a ser convertido.

Retornos

Um inteiro não assinado de 8 bits equivalente a value.

Exceções

value representa um número maior que Byte.MaxValue.

Exemplos

O exemplo a seguir converte uma matriz de Char valores em Byte valores.

char[] chars = { 'a', 'z', '\x0007', '\x03FF' };
foreach (char ch in chars)
{
   try {
      byte result = Convert.ToByte(ch);
      Console.WriteLine("{0} is converted to {1}.", ch, result);
   }
   catch (OverflowException) {
      Console.WriteLine("Unable to convert u+{0} to a byte.",
                        Convert.ToInt16(ch).ToString("X4"));
   }
}
// The example displays the following output:
//       a is converted to 97.
//       z is converted to 122.
//        is converted to 7.
//       Unable to convert u+03FF to a byte.

Comentários

Esse método retorna um valor de byte não assinado que representa o código numérico do Char objeto passado para ele. No .NET, um Char objeto é um valor de 16 bits. Isso significa que o método é adequado para retornar os códigos numéricos de caracteres no intervalo de caracteres ASCII ou nos intervalos Controles C0 Unicode e Latino Básico e Controles C1 e Suplemento Latino-1, de U+0000 a U+00FF.

Aplica-se a

.NET 9 e outras versões
Produto Versões
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

ToByte(Decimal)

Origem:
Convert.cs
Origem:
Convert.cs
Origem:
Convert.cs

Converte o valor do número decimal especificado em um inteiro sem sinal de 8 bits equivalente.

public static byte ToByte (decimal value);

Parâmetros

value
Decimal

O número a ser convertido.

Retornos

value, arredondado para o próximo inteiro sem sinal de 8 bits. Caso value esteja entre dois números inteiros, o número par é retornado; ou seja, 4,5 é convertido em 4 e 5,5 é convertido em 6.

Exceções

value é maior que Byte.MaxValue ou menor que Byte.MinValue.

Comentários

O exemplo a seguir converte um Byte valor em um Decimal e um Decimal valor em um Byte.

public void ConvertByteDecimal(byte byteVal) {
    decimal decimalVal;

    // Byte to decimal conversion will not overflow.
    decimalVal = System.Convert.ToDecimal(byteVal);
    System.Console.WriteLine("The byte as a decimal is {0}.",
        decimalVal);

    // Decimal to byte conversion can overflow.
    try {
        byteVal = System.Convert.ToByte(decimalVal);
        System.Console.WriteLine("The Decimal as a byte is {0}.",
            byteVal);
    }
    catch (System.OverflowException) {
        System.Console.WriteLine(
            "The decimal value is too large for a byte.");
    }
}

Aplica-se a

.NET 9 e outras versões
Produto Versões
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

ToByte(Boolean)

Origem:
Convert.cs
Origem:
Convert.cs
Origem:
Convert.cs

Converte o valor booliano especificado no inteiro sem sinal de 8 bits equivalente.

public static byte ToByte (bool value);

Parâmetros

value
Boolean

O valor booliano a ser convertido.

Retornos

O número 1 caso value seja true; do contrário, 0.

Exemplos

O exemplo a seguir ilustra a conversão de Boolean em Byte valores .

bool falseFlag = false;
bool trueFlag = true;

Console.WriteLine("{0} converts to {1}.", falseFlag,
                  Convert.ToByte(falseFlag));
Console.WriteLine("{0} converts to {1}.", trueFlag,
                  Convert.ToByte(trueFlag));
// The example displays the following output:
//       False converts to 0.
//       True converts to 1.

Aplica-se a

.NET 9 e outras versões
Produto Versões
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

ToByte(Int16)

Origem:
Convert.cs
Origem:
Convert.cs
Origem:
Convert.cs

Converte o valor do inteiro com sinal de 16 bits especificado em um inteiro sem sinal de 8 bits equivalente.

public static byte ToByte (short value);

Parâmetros

value
Int16

O inteiro assinado de 16 bits a ser convertido.

Retornos

Um inteiro não assinado de 8 bits equivalente a value.

Exceções

value é menor que Byte.MinValue ou maior que Byte.MaxValue.

Exemplos

O exemplo a seguir converte uma matriz de Int16 valores em Byte valores.

short[] numbers = { Int16.MinValue, -1, 0, 121, 340, Int16.MaxValue };
byte result;
foreach (short number in numbers)
{
   try {
      result = Convert.ToByte(number);
      Console.WriteLine("Converted the {0} value {1} to the {2} value {3}.",
                        number.GetType().Name, number,
                        result.GetType().Name, result);
   }
   catch (OverflowException) {
      Console.WriteLine("The {0} value {1} is outside the range of the Byte type.",
                        number.GetType().Name, number);
   }
}
// The example displays the following output:
//       The Int16 value -32768 is outside the range of the Byte type.
//       The Int16 value -1 is outside the range of the Byte type.
//       Converted the Int16 value 0 to the Byte value 0.
//       Converted the Int16 value 121 to the Byte value 121.
//       The Int16 value 340 is outside the range of the Byte type.
//       The Int16 value 32767 is outside the range of the Byte type.

Aplica-se a

.NET 9 e outras versões
Produto Versões
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

ToByte(Int32)

Origem:
Convert.cs
Origem:
Convert.cs
Origem:
Convert.cs

Converte o valor do inteiro com sinal de 32 bits especificado em um inteiro sem sinal de 8 bits equivalente.

public static byte ToByte (int value);

Parâmetros

value
Int32

O inteiro com sinal de 32 bits a converter.

Retornos

Um inteiro não assinado de 8 bits equivalente a value.

Exceções

value é menor que Byte.MinValue ou maior que Byte.MaxValue.

Exemplos

O exemplo a seguir converte uma matriz de Int32 valores em Byte valores.

int[] numbers = { Int32.MinValue, -1, 0, 121, 340, Int32.MaxValue };
byte result;
foreach (int number in numbers)
{
   try {
      result = Convert.ToByte(number);
      Console.WriteLine("Converted the {0} value {1} to the {2} value {3}.",
                        number.GetType().Name, number,
                        result.GetType().Name, result);
   }
   catch (OverflowException) {
      Console.WriteLine("The {0} value {1} is outside the range of the Byte type.",
                        number.GetType().Name, number);
   }
}
// The example displays the following output:
//       The Int32 value -2147483648 is outside the range of the Byte type.
//       The Int32 value -1 is outside the range of the Byte type.
//       Converted the Int32 value 0 to the Byte value 0.
//       Converted the Int32 value 121 to the Byte value 121.
//       The Int32 value 340 is outside the range of the Byte type.
//       The Int32 value 2147483647 is outside the range of the Byte type.

Aplica-se a

.NET 9 e outras versões
Produto Versões
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

ToByte(Double)

Origem:
Convert.cs
Origem:
Convert.cs
Origem:
Convert.cs

Converte o valor do número de ponto flutuante de precisão dupla especificado em um inteiro sem sinal de 8 bits equivalente.

public static byte ToByte (double value);

Parâmetros

value
Double

O número de ponto flutuante de precisão dupla a ser convertido.

Retornos

value, arredondado para o próximo inteiro sem sinal de 8 bits. Caso value esteja entre dois números inteiros, o número par é retornado; ou seja, 4,5 é convertido em 4 e 5,5 é convertido em 6.

Exceções

value é maior que Byte.MaxValue ou menor que Byte.MinValue.

Exemplos

O exemplo a seguir converte um Byte valor em um Double e um Double valor em um Byte.

public void ConvertDoubleByte(double doubleVal) {
    byte	byteVal = 0;

    // Double to byte conversion can overflow.
    try {
        byteVal = System.Convert.ToByte(doubleVal);
        System.Console.WriteLine("{0} as a byte is: {1}.",
            doubleVal, byteVal);
    }
    catch (System.OverflowException) {
        System.Console.WriteLine(
            "Overflow in double-to-byte conversion.");
    }

    // Byte to double conversion cannot overflow.
    doubleVal = System.Convert.ToDouble(byteVal);
    System.Console.WriteLine("{0} as a double is: {1}.",
        byteVal, doubleVal);
}

Aplica-se a

.NET 9 e outras versões
Produto Versões
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

ToByte(Object)

Origem:
Convert.cs
Origem:
Convert.cs
Origem:
Convert.cs

Converte o valor do objeto especificado para um inteiro sem sinal de 8 bits.

public static byte ToByte (object value);
public static byte ToByte (object? value);

Parâmetros

value
Object

Um objeto que implementa a interface IConvertible ou null.

Retornos

Um inteiro não assinado de 8 bits equivalente a value, ou zero caso value seja null.

Exceções

O value não está no formato de propriedade para um valor Byte.

value não implementa IConvertible.

- ou -

Não há suporte à conversão do value para o tipo Byte.

value representa um número menor que Byte.MinValue ou maior que Byte.MaxValue.

Exemplos

O exemplo a seguir usa o ToByte(Object) método para converter uma matriz de objetos em Byte valores.

object[] values = { true, -12, 163, 935, 'x', "104", "103.0", "-1",
                    "1.00e2", "One", 1.00e2};
byte result;
foreach (object value in values)
{
   try {
      result = Convert.ToByte(value);
      Console.WriteLine("Converted the {0} value {1} to the {2} value {3}.",
                        value.GetType().Name, value,
                        result.GetType().Name, result);
   }
   catch (OverflowException)
   {
      Console.WriteLine("The {0} value {1} is outside the range of the Byte type.",
                        value.GetType().Name, value);
   }
   catch (FormatException)
   {
      Console.WriteLine("The {0} value {1} is not in a recognizable format.",
                        value.GetType().Name, value);
   }
   catch (InvalidCastException)
   {
      Console.WriteLine("No conversion to a Byte exists for the {0} value {1}.",
                        value.GetType().Name, value);
   }
}
// The example displays the following output:
//       Converted the Boolean value True to the Byte value 1.
//       The Int32 value -12 is outside the range of the Byte type.
//       Converted the Int32 value 163 to the Byte value 163.
//       The Int32 value 935 is outside the range of the Byte type.
//       Converted the Char value x to the Byte value 120.
//       Converted the String value 104 to the Byte value 104.
//       The String value 103.0 is not in a recognizable format.
//       The String value -1 is outside the range of the Byte type.
//       The String value 1.00e2 is not in a recognizable format.
//       The String value One is not in a recognizable format.
//       Converted the Double value 100 to the Byte value 100.

Comentários

Se value não nullfor , esse método encapsulará uma chamada para a IConvertible.ToByte implementação do tipo subjacente de value.

Aplica-se a

.NET 9 e outras versões
Produto Versões
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0