Auf Englisch lesen

Freigeben über


Convert.ToByte Methode

Definition

Konvertiert einen angegebenen Wert in eine 8-Bit-ganzzahl ohne Vorzeichen.

Überlädt

ToByte(String)

Konvertiert die angegebene Zeichenfolgendarstellung einer Zahl in eine entsprechende 8-Bit-ganzzahl ohne Vorzeichen.

ToByte(UInt16)

Wandelt den Wert der angegebenen 16-Bit-ganzzahl ohne Vorzeichen in eine entsprechende 8-Bit-ganzzahl ohne Vorzeichen um.

ToByte(UInt32)

Wandelt den Wert der angegebenen 32-Bit-ganzzahl ohne Vorzeichen in eine entsprechende 8-Bit-ganzzahl ohne Vorzeichen um.

ToByte(String, Int32)

Konvertiert die Zeichenfolgendarstellung einer Zahl in einer angegebenen Basis in eine entsprechende 8-Bit-ganzzahl ohne Vorzeichen.

ToByte(Object, IFormatProvider)

Konvertiert den Wert des angegebenen Objekts in eine 8-Bit-ganzzahl ohne Vorzeichen unter Verwendung der angegebenen kulturspezifischen Formatierungsinformationen.

ToByte(String, IFormatProvider)

Konvertiert die angegebene Zeichenfolgendarstellung einer Zahl in eine entsprechende 8-Bit-ganzzahl ohne Vorzeichen unter Verwendung der angegebenen kulturspezifischen Formatierungsinformationen.

ToByte(Single)

Wandelt den Wert der angegebenen Gleitkommazahl mit einfacher Genauigkeit in eine entsprechende 8-Bit-ganzzahl ohne Vorzeichen um.

ToByte(UInt64)

Wandelt den Wert der angegebenen 64-Bit-ganzzahl ohne Vorzeichen in eine entsprechende 8-Bit-ganzzahl ohne Vorzeichen um.

ToByte(SByte)

Wandelt den Wert der angegebenen 8-Bit-ganzzahligen Vorzeichen in eine entsprechende 8-Bit-ganzzahl ohne Vorzeichen um.

ToByte(DateTime)

Durch Aufrufen dieser Methode wird immer InvalidCastExceptionausgelöst.

ToByte(Int64)

Wandelt den Wert der angegebenen 64-Bit-ganzzahligen Vorzeichen in eine entsprechende 8-Bit-ganzzahl ohne Vorzeichen um.

ToByte(Byte)

Gibt die angegebene 8-Bit-ganzzahl ohne Vorzeichen zurück. Es wird keine tatsächliche Konvertierung ausgeführt.

ToByte(Char)

Wandelt den Wert des angegebenen Unicode-Zeichens in die entsprechende 8-Bit-ganzzahl ohne Vorzeichen um.

ToByte(Decimal)

Wandelt den Wert der angegebenen Dezimalzahl in eine entsprechende 8-Bit-ganzzahl ohne Vorzeichen um.

ToByte(Boolean)

Konvertiert den angegebenen booleschen Wert in die entsprechende 8-Bit-ganzzahl ohne Vorzeichen.

ToByte(Int16)

Wandelt den Wert der angegebenen 16-Bit-ganzzahligen Vorzeichen in eine entsprechende 8-Bit-ganzzahl ohne Vorzeichen um.

ToByte(Int32)

Wandelt den Wert der angegebenen 32-Bit-ganzzahligen Vorzeichen in eine entsprechende 8-Bit-ganzzahl ohne Vorzeichen um.

ToByte(Double)

Wandelt den Wert der angegebenen Gleitkommazahl mit doppelter Genauigkeit in eine entsprechende 8-Bit-ganzzahl ohne Vorzeichen um.

ToByte(Object)

Konvertiert den Wert des angegebenen Objekts in eine 8-Bit-ganzzahl ohne Vorzeichen.

ToByte(String)

Quelle:
Convert.cs
Quelle:
Convert.cs
Quelle:
Convert.cs

Konvertiert die angegebene Zeichenfolgendarstellung einer Zahl in eine entsprechende 8-Bit-ganzzahl ohne Vorzeichen.

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

Parameter

value
String

Eine Zeichenfolge, die die zu konvertierende Zahl enthält.

Gibt zurück

Eine 8-Bit-ganzzahl ohne Vorzeichen, die valueentspricht, oder Null, wenn valuenullist.

Ausnahmen

value besteht nicht aus einem optionalen Vorzeichen gefolgt von einer Sequenz von Ziffern (0 bis 9).

value stellt eine Zahl dar, die kleiner als Byte.MinValue oder größer als Byte.MaxValueist.

Beispiele

Im folgenden Beispiel wird ein Zeichenfolgenarray definiert und versucht, jede Zeichenfolge in eine Bytezu konvertieren. Beachten Sie, dass während eine null Zeichenfolge auf Null analysiert, String.Empty eine FormatExceptionauslöst. Beachten Sie außerdem, dass beim erfolgreichen Analysieren von führenden und nachgestellten Leerzeichen Formatierungssymbole wie Währungssymbole, Gruppentrennzeichen oder Dezimaltrennzeichen nicht verwendet werden.

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

Hinweise

Die Verwendung der ToByte(String)-Methode entspricht dem Übergeben von value an die Byte.Parse(String)-Methode. value wird mithilfe der Formatierungskonventionen der aktuellen Kultur interpretiert.

Wenn Sie eine Ausnahme lieber nicht behandeln möchten, wenn die Konvertierung fehlschlägt, können Sie stattdessen die Byte.TryParse-Methode aufrufen. Es wird ein Boolean Wert zurückgegeben, der angibt, ob die Konvertierung erfolgreich war oder fehlgeschlagen ist.

Weitere Informationen

Gilt für:

.NET 9 und andere Versionen
Produkt Versionen
.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)

Quelle:
Convert.cs
Quelle:
Convert.cs
Quelle:
Convert.cs

Wichtig

Diese API ist nicht CLS-kompatibel.

Wandelt den Wert der angegebenen 16-Bit-ganzzahl ohne Vorzeichen in eine entsprechende 8-Bit-ganzzahl ohne Vorzeichen um.

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

Parameter

value
UInt16

Die zu konvertierende 16-Bit-Ganzzahl ohne Vorzeichen.

Gibt zurück

Eine 8-Bit-ganzzahl ohne Vorzeichen, die valueentspricht.

Attribute

Ausnahmen

value ist größer als Byte.MaxValue.

Beispiele

Im folgenden Beispiel wird ein Array mit nicht signierten 16-Bit-Ganzzahlen in Byte Werte konvertiert.

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.

Gilt für:

.NET 9 und andere Versionen
Produkt Versionen
.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)

Quelle:
Convert.cs
Quelle:
Convert.cs
Quelle:
Convert.cs

Wichtig

Diese API ist nicht CLS-kompatibel.

Wandelt den Wert der angegebenen 32-Bit-ganzzahl ohne Vorzeichen in eine entsprechende 8-Bit-ganzzahl ohne Vorzeichen um.

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

Parameter

value
UInt32

Die zu konvertierende 32-Bit-Ganzzahl ohne Vorzeichen.

Gibt zurück

Eine 8-Bit-ganzzahl ohne Vorzeichen, die valueentspricht.

Attribute

Ausnahmen

value ist größer als Byte.MaxValue.

Beispiele

Im folgenden Beispiel wird ein Array nicht signierter ganzzahliger Zahlen in Byte Werte konvertiert.

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.

Gilt für:

.NET 9 und andere Versionen
Produkt Versionen
.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)

Quelle:
Convert.cs
Quelle:
Convert.cs
Quelle:
Convert.cs

Konvertiert die Zeichenfolgendarstellung einer Zahl in einer angegebenen Basis in eine entsprechende 8-Bit-ganzzahl ohne Vorzeichen.

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

Parameter

value
String

Eine Zeichenfolge, die die zu konvertierende Zahl enthält.

fromBase
Int32

Die Basis der Zahl in value, die 2, 8, 10 oder 16 sein muss.

Gibt zurück

Eine 8-Bit-ganzzahl ohne Vorzeichen, die der Zahl in valueentspricht, oder 0 (Null), wenn valuenullist.

Ausnahmen

fromBase ist nicht 2, 8, 10 oder 16.

-oder-

value, der eine nicht signierte Zahl 10 darstellt, wird einem negativen Vorzeichen vorangestellt.

value enthält ein Zeichen, das keine gültige Ziffer in der durch fromBaseangegebenen Basis ist. Die Ausnahmemeldung gibt an, dass es keine Zu konvertierenden Ziffern gibt, wenn das erste Zeichen in value ungültig ist; andernfalls gibt die Meldung an, dass value ungültige nachgestellte Zeichen enthält.

value, der eine nicht signierte Basisnummer 10 darstellt, wird einem negativen Vorzeichen vorangestellt.

-oder-

value stellt eine Zahl dar, die kleiner als Byte.MinValue oder größer als Byte.MaxValueist.

Beispiele

Im folgenden Beispiel wird alternativ versucht, ein Array von Zeichenfolgen als Darstellung von binären, oktalen, dezimalen und hexadezimalen Werten zu interpretieren.

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.

Hinweise

Wenn fromBase 16 ist, können Sie der durch den parameter value angegebenen Zahl das Präfix "0x" oder "0X" voranstellen.

Da der datentyp Byte nur nicht signierte Werte unterstützt, wird von der ToByte(String, Int32)-Methode davon ausgegangen, dass value mit nicht signierter binärer Darstellung ausgedrückt wird. Mit anderen Worten, alle acht Bits werden verwendet, um den numerischen Wert darzustellen, und ein Zeichenbit fehlt. Daher ist es möglich, Code zu schreiben, in dem ein signierter Bytewert außerhalb des Bereichs des Byte Datentyps in einen Byte Wert konvertiert wird, ohne dass die Methode eine Ausnahme auslöst. Im folgenden Beispiel werden MinValue in die Hexadezimalzeichenfolgendarstellung konvertiert und anschließend die ToByte(String, Int32)-Methode aufgerufen. Statt eine Ausnahme auszuwerfen, zeigt die Methode die Meldung "0x80 konvertiert in 128" an.

// 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);
}

Beim Ausführen von binären Vorgängen oder numerischen Konvertierungen liegt es immer in der Verantwortung des Entwicklers, zu überprüfen, ob eine Methode oder ein Operator die entsprechende numerische Darstellung verwendet, um einen bestimmten Wert zu interpretieren. Im folgenden Beispiel wird eine Technik veranschaulicht, mit der sichergestellt wird, dass die Methode bei der Konvertierung einer Hexadezimalzeichenfolgendarstellung in einen Byte Wert nicht unangemessen eine nicht signierte binäre Darstellung verwendet. Das Beispiel bestimmt, ob ein Wert eine signierte oder eine nicht signierte ganze Zahl darstellt, während er diesen Wert in seine Zeichenfolgendarstellung konvertiert. Wenn das Beispiel den Wert wieder in einen Byte-Wert konvertiert, überprüft es, ob der ursprüngliche Wert eine signierte ganze Zahl war. Wenn ja, und wenn das Bit mit hoher Reihenfolge festgelegt ist (was angibt, dass der Wert negativ ist und dass er die Ergänzung von zwei anstelle einer nicht signierten binären Darstellung verwendet), löst die Methode eine Ausnahme aus.

// 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.

Gilt für:

.NET 9 und andere Versionen
Produkt Versionen
.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)

Quelle:
Convert.cs
Quelle:
Convert.cs
Quelle:
Convert.cs

Konvertiert den Wert des angegebenen Objekts in eine 8-Bit-ganzzahl ohne Vorzeichen unter Verwendung der angegebenen kulturspezifischen Formatierungsinformationen.

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

Parameter

value
Object

Ein Objekt, das die IConvertible Schnittstelle implementiert.

provider
IFormatProvider

Ein Objekt, das kulturspezifische Formatierungsinformationen bereitstellt.

Gibt zurück

Eine 8-Bit-ganzzahl ohne Vorzeichen, die valueentspricht, oder Null, wenn valuenullist.

Ausnahmen

value befindet sich nicht im Eigenschaftenformat für einen Byte Wert.

value implementiert IConvertiblenicht.

-oder-

Die Konvertierung von value in den Byte Typ wird nicht unterstützt.

value stellt eine Zahl dar, die kleiner als Byte.MinValue oder größer als Byte.MaxValueist.

Beispiele

Im folgenden Beispiel wird eine ByteString Klasse definiert, die die IConvertible Schnittstelle implementiert. Die Klasse speichert die Zeichenfolgendarstellung eines Bytewerts zusammen mit einem Zeichenfeld, sodass sie sowohl signierte als auch nicht signierte Bytewerte darstellen kann.

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));
   }
}

Im folgenden Beispiel werden mehrere ByteString Objekte instanziiert und die ToByte(Object, IFormatProvider)-Methode aufgerufen, um sie in Bytewerte zu konvertieren. Es veranschaulicht, dass die ToByte(Object, IFormatProvider)-Methode einen Aufruf der IConvertible.ToByte Methode des zu konvertierenden Objekts umschließt.

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.

Hinweise

provider ermöglicht es dem Benutzer, kulturspezifische Konvertierungsinformationen über den Inhalt valueanzugeben. Die Basistypen ignorieren provider; Der Parameter kann jedoch verwendet werden, wenn value ein benutzerdefinierter Typ ist, der die IConvertible Schnittstelle implementiert.

Gilt für:

.NET 9 und andere Versionen
Produkt Versionen
.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)

Quelle:
Convert.cs
Quelle:
Convert.cs
Quelle:
Convert.cs

Konvertiert die angegebene Zeichenfolgendarstellung einer Zahl in eine entsprechende 8-Bit-ganzzahl ohne Vorzeichen unter Verwendung der angegebenen kulturspezifischen Formatierungsinformationen.

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

Parameter

value
String

Eine Zeichenfolge, die die zu konvertierende Zahl enthält.

provider
IFormatProvider

Ein Objekt, das kulturspezifische Formatierungsinformationen bereitstellt.

Gibt zurück

Eine 8-Bit-ganzzahl ohne Vorzeichen, die valueentspricht, oder Null, wenn valuenullist.

Ausnahmen

value besteht nicht aus einem optionalen Vorzeichen gefolgt von einer Sequenz von Ziffern (0 bis 9).

value stellt eine Zahl dar, die kleiner als Byte.MinValue oder größer als Byte.MaxValueist.

Beispiele

Im folgenden Beispiel wird ein benutzerdefiniertes NumberFormatInfo-Objekt erstellt, das das positive Zeichen als "pos" und das negative Zeichen als "neg" definiert, das in Aufrufen der ToByte(String, IFormatProvider)-Methode verwendet wird. Anschließend wird die ToByte(String, IFormatProvider) Methode wiederholt aufgerufen, um jedes Element in einem Zeichenfolgenarray in einen Byte Wert zu konvertieren.

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

Hinweise

provider ist eine IFormatProvider Instanz, die ein NumberFormatInfo-Objekt abruft. Das NumberFormatInfo-Objekt stellt kulturspezifische Informationen zum Format von valuebereit. Wenn providernullist, wird das NumberFormatInfo Objekt für die aktuelle Kultur verwendet.

Wenn Sie eine Ausnahme lieber nicht behandeln möchten, wenn die Konvertierung fehlschlägt, können Sie stattdessen die Byte.TryParse-Methode aufrufen. Es wird ein Boolean Wert zurückgegeben, der angibt, ob die Konvertierung erfolgreich war oder fehlgeschlagen ist.

Weitere Informationen

Gilt für:

.NET 9 und andere Versionen
Produkt Versionen
.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)

Quelle:
Convert.cs
Quelle:
Convert.cs
Quelle:
Convert.cs

Wandelt den Wert der angegebenen Gleitkommazahl mit einfacher Genauigkeit in eine entsprechende 8-Bit-ganzzahl ohne Vorzeichen um.

public static byte ToByte (float value);

Parameter

value
Single

Eine Gleitkommazahl mit einfacher Genauigkeit.

Gibt zurück

value, gerundet auf die nächste 8-Bit-ganzzahl ohne Vorzeichen. Wenn value zwischen zwei ganzen Zahlen halbwegs liegt, wird die gerade Zahl zurückgegeben; d. h. 4,5 wird in 4 konvertiert, und 5,5 wird in 6 konvertiert.

Ausnahmen

value ist größer als Byte.MaxValue oder kleiner als Byte.MinValue.

Beispiele

Im folgenden Beispiel wird ein Single Wert in einen Bytekonvertiert.

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.");
    }
}

Weitere Informationen

Gilt für:

.NET 9 und andere Versionen
Produkt Versionen
.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)

Quelle:
Convert.cs
Quelle:
Convert.cs
Quelle:
Convert.cs

Wichtig

Diese API ist nicht CLS-kompatibel.

Wandelt den Wert der angegebenen 64-Bit-ganzzahl ohne Vorzeichen in eine entsprechende 8-Bit-ganzzahl ohne Vorzeichen um.

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

Parameter

value
UInt64

Die zu konvertierende 64-Bit-Ganzzahl ohne Vorzeichen.

Gibt zurück

Eine 8-Bit-ganzzahl ohne Vorzeichen, die valueentspricht.

Attribute

Ausnahmen

value ist größer als Byte.MaxValue.

Beispiele

Im folgenden Beispiel wird ein Array mit nicht signierten langen Ganzzahlen in Byte Werte konvertiert.

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.

Gilt für:

.NET 9 und andere Versionen
Produkt Versionen
.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)

Quelle:
Convert.cs
Quelle:
Convert.cs
Quelle:
Convert.cs

Wichtig

Diese API ist nicht CLS-kompatibel.

Wandelt den Wert der angegebenen 8-Bit-ganzzahligen Vorzeichen in eine entsprechende 8-Bit-ganzzahl ohne Vorzeichen um.

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

Parameter

value
SByte

Die zu konvertierende 8-Bit-Ganzzahl.

Gibt zurück

Eine 8-Bit-ganzzahl ohne Vorzeichen, die valueentspricht.

Attribute

Ausnahmen

value ist kleiner als Byte.MinValue.

Beispiele

Im folgenden Beispiel wird ein Array von SByte Werten in Byte Werte konvertiert.

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.

Gilt für:

.NET 9 und andere Versionen
Produkt Versionen
.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)

Quelle:
Convert.cs
Quelle:
Convert.cs
Quelle:
Convert.cs

Durch Aufrufen dieser Methode wird immer InvalidCastExceptionausgelöst.

public static byte ToByte (DateTime value);

Parameter

value
DateTime

Der zu konvertierende Datums- und Uhrzeitwert.

Gibt zurück

Diese Konvertierung wird nicht unterstützt. Es wird kein Wert zurückgegeben.

Ausnahmen

Diese Konvertierung wird nicht unterstützt.

Gilt für:

.NET 9 und andere Versionen
Produkt Versionen
.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)

Quelle:
Convert.cs
Quelle:
Convert.cs
Quelle:
Convert.cs

Wandelt den Wert der angegebenen 64-Bit-ganzzahligen Vorzeichen in eine entsprechende 8-Bit-ganzzahl ohne Vorzeichen um.

public static byte ToByte (long value);

Parameter

value
Int64

Die zu konvertierende 64-Bit-Ganzzahl mit Vorzeichen.

Gibt zurück

Eine 8-Bit-ganzzahl ohne Vorzeichen, die valueentspricht.

Ausnahmen

value ist kleiner als Byte.MinValue oder größer als Byte.MaxValue.

Beispiele

Im folgenden Beispiel wird ein Array von Int64 Werten in Byte Werte konvertiert.

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.

Gilt für:

.NET 9 und andere Versionen
Produkt Versionen
.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)

Quelle:
Convert.cs
Quelle:
Convert.cs
Quelle:
Convert.cs

Gibt die angegebene 8-Bit-ganzzahl ohne Vorzeichen zurück. Es wird keine tatsächliche Konvertierung ausgeführt.

public static byte ToByte (byte value);

Parameter

value
Byte

Die 8-Bit-ganzzahl ohne Vorzeichen, die zurückgegeben werden soll.

Gibt zurück

value wird unverändert zurückgegeben.

Gilt für:

.NET 9 und andere Versionen
Produkt Versionen
.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)

Quelle:
Convert.cs
Quelle:
Convert.cs
Quelle:
Convert.cs

Wandelt den Wert des angegebenen Unicode-Zeichens in die entsprechende 8-Bit-ganzzahl ohne Vorzeichen um.

public static byte ToByte (char value);

Parameter

value
Char

Das zu konvertierende Unicode-Zeichen.

Gibt zurück

Eine 8-Bit-ganzzahl ohne Vorzeichen, die valueentspricht.

Ausnahmen

value stellt eine Zahl dar, die größer als Byte.MaxValueist.

Beispiele

Im folgenden Beispiel wird ein Array von Char Werten in Byte Werte konvertiert.

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.

Hinweise

Diese Methode gibt einen nicht signierten Bytewert zurück, der den numerischen Code des an das objekt übergebenen Char-Objekts darstellt. In .NET ist ein Char-Objekt ein 16-Bit-Wert. Dies bedeutet, dass die Methode geeignet ist, die numerischen Codes von Zeichen im ASCII-Zeichenbereich oder in den Unicode-C0-Steuerelementen und den basisbasierten Lateinischen Steuerelementen und den Zusatzbereichen C1 und Lateinisch-1 zurückzugeben, von U+0000 bis U+00FF.

Gilt für:

.NET 9 und andere Versionen
Produkt Versionen
.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)

Quelle:
Convert.cs
Quelle:
Convert.cs
Quelle:
Convert.cs

Wandelt den Wert der angegebenen Dezimalzahl in eine entsprechende 8-Bit-ganzzahl ohne Vorzeichen um.

public static byte ToByte (decimal value);

Parameter

value
Decimal

Die zahl, die konvertiert werden soll.

Gibt zurück

value, gerundet auf die nächste 8-Bit-ganzzahl ohne Vorzeichen. Wenn value zwischen zwei ganzen Zahlen halbwegs liegt, wird die gerade Zahl zurückgegeben; d. h. 4,5 wird in 4 konvertiert, und 5,5 wird in 6 konvertiert.

Ausnahmen

value ist größer als Byte.MaxValue oder kleiner als Byte.MinValue.

Hinweise

Im folgenden Beispiel wird ein Byte Wert in ein Decimal und ein Decimal Wert in ein Bytekonvertiert.

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.");
    }
}

Gilt für:

.NET 9 und andere Versionen
Produkt Versionen
.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)

Quelle:
Convert.cs
Quelle:
Convert.cs
Quelle:
Convert.cs

Konvertiert den angegebenen booleschen Wert in die entsprechende 8-Bit-ganzzahl ohne Vorzeichen.

public static byte ToByte (bool value);

Parameter

value
Boolean

Der boolesche Wert, der konvertiert werden soll.

Gibt zurück

Die Zahl 1, wenn valuetrueist; andernfalls 0.

Beispiele

Das folgende Beispiel veranschaulicht die Konvertierung von Boolean in Byte Werte.

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.

Gilt für:

.NET 9 und andere Versionen
Produkt Versionen
.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)

Quelle:
Convert.cs
Quelle:
Convert.cs
Quelle:
Convert.cs

Wandelt den Wert der angegebenen 16-Bit-ganzzahligen Vorzeichen in eine entsprechende 8-Bit-ganzzahl ohne Vorzeichen um.

public static byte ToByte (short value);

Parameter

value
Int16

Die zu konvertierende 16-Bit-Ganzzahl.

Gibt zurück

Eine 8-Bit-ganzzahl ohne Vorzeichen, die valueentspricht.

Ausnahmen

value ist kleiner als Byte.MinValue oder größer als Byte.MaxValue.

Beispiele

Im folgenden Beispiel wird ein Array von Int16 Werten in Byte Werte konvertiert.

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.

Gilt für:

.NET 9 und andere Versionen
Produkt Versionen
.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)

Quelle:
Convert.cs
Quelle:
Convert.cs
Quelle:
Convert.cs

Wandelt den Wert der angegebenen 32-Bit-ganzzahligen Vorzeichen in eine entsprechende 8-Bit-ganzzahl ohne Vorzeichen um.

public static byte ToByte (int value);

Parameter

value
Int32

Die zu konvertierende 32-Bit-Ganzzahl mit Vorzeichen.

Gibt zurück

Eine 8-Bit-ganzzahl ohne Vorzeichen, die valueentspricht.

Ausnahmen

value ist kleiner als Byte.MinValue oder größer als Byte.MaxValue.

Beispiele

Im folgenden Beispiel wird ein Array von Int32 Werten in Byte Werte konvertiert.

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.

Gilt für:

.NET 9 und andere Versionen
Produkt Versionen
.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)

Quelle:
Convert.cs
Quelle:
Convert.cs
Quelle:
Convert.cs

Wandelt den Wert der angegebenen Gleitkommazahl mit doppelter Genauigkeit in eine entsprechende 8-Bit-ganzzahl ohne Vorzeichen um.

public static byte ToByte (double value);

Parameter

value
Double

Die zu konvertierende Gleitkommazahl mit doppelter Genauigkeit.

Gibt zurück

value, gerundet auf die nächste 8-Bit-ganzzahl ohne Vorzeichen. Wenn value zwischen zwei ganzen Zahlen halbwegs liegt, wird die gerade Zahl zurückgegeben; d. h. 4,5 wird in 4 konvertiert, und 5,5 wird in 6 konvertiert.

Ausnahmen

value ist größer als Byte.MaxValue oder kleiner als Byte.MinValue.

Beispiele

Im folgenden Beispiel wird ein Byte Wert in ein Double und ein Double Wert in ein Bytekonvertiert.

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);
}

Gilt für:

.NET 9 und andere Versionen
Produkt Versionen
.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)

Quelle:
Convert.cs
Quelle:
Convert.cs
Quelle:
Convert.cs

Konvertiert den Wert des angegebenen Objekts in eine 8-Bit-ganzzahl ohne Vorzeichen.

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

Parameter

value
Object

Ein Objekt, das die IConvertible Schnittstelle oder nullimplementiert.

Gibt zurück

Eine 8-Bit-ganzzahl ohne Vorzeichen, die valueentspricht, oder Null, wenn valuenullist.

Ausnahmen

value befindet sich nicht im Eigenschaftenformat für einen Byte Wert.

value implementiert IConvertiblenicht.

-oder-

Die Konvertierung von value in den Byte Typ wird nicht unterstützt.

value stellt eine Zahl dar, die kleiner als Byte.MinValue oder größer als Byte.MaxValueist.

Beispiele

Im folgenden Beispiel wird die ToByte(Object)-Methode verwendet, um ein Array von Objekten in Byte Werte zu konvertieren.

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.

Hinweise

Wenn value nicht nullist, umschließt diese Methode einen Aufruf der IConvertible.ToByte Implementierung des zugrunde liegenden Typs von value.

Gilt für:

.NET 9 und andere Versionen
Produkt Versionen
.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