Markieren Sie das Kontrollkästchen Englisch, um die englische Version dieses Artikels anzuzeigen. Sie können den englischen Text auch in einem Popup-Fenster einblenden, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch
Diese Dokumentation wurde archiviert und wird nicht länger gepflegt.

Byte-Struktur

Stellt eine 8-Bit-Ganzzahl ohne Vorzeichen dar.

Namespace:  System
Assembly:  mscorlib (in mscorlib.dll)

[SerializableAttribute]
[ComVisibleAttribute(true)]
public struct Byte : IComparable, IFormattable, 
	IConvertible, IComparable<byte>, IEquatable<byte>

Der Byte-Typ macht die folgenden Member verfügbar.

  NameBeschreibung
Öffentliche MethodeUnterstützt von XNA Frameworkyyb1w04y.PortableClassLibrary(de-de,VS.100).gifCompareTo(Byte)Vergleicht diese Instanz mit einer angegebenen 8-Bit-Ganzzahl ohne Vorzeichen, und gibt eine Angabe über das Verhältnis der entsprechenden Werte zurück.
Öffentliche MethodeUnterstützt von XNA FrameworkCompareTo(Object)Vergleicht diese Instanz mit einem angegebenen Objekt und gibt eine Angabe über das Verhältnis der entsprechenden Werte zurück.
Öffentliche MethodeUnterstützt von XNA Frameworkyyb1w04y.PortableClassLibrary(de-de,VS.100).gifEquals(Byte)Gibt einen Wert zurück, der angibt, ob diese Instanz und ein angegebenes Byte-Objekt den gleichen Wert darstellen.
Öffentliche MethodeUnterstützt von XNA Frameworkyyb1w04y.PortableClassLibrary(de-de,VS.100).gifEquals(Object)Gibt einen Wert zurück, der angibt, ob diese Instanz gleich einem angegebenen Objekt ist. (Überschreibt ValueType.Equals(Object).)
Geschützte MethodeUnterstützt von XNA Frameworkyyb1w04y.PortableClassLibrary(de-de,VS.100).gifFinalize Gibt einem Objekt Gelegenheit, Ressourcen freizugeben und andere Bereinigungen durchzuführen, bevor es von der Garbage Collection freigegeben wird. (Von Object geerbt.)
Öffentliche MethodeUnterstützt von XNA Frameworkyyb1w04y.PortableClassLibrary(de-de,VS.100).gifGetHashCodeGibt den Hashcode für diese Instanz zurück. (Überschreibt ValueType.GetHashCode().)
Öffentliche MethodeUnterstützt von XNA Frameworkyyb1w04y.PortableClassLibrary(de-de,VS.100).gifGetTypeRuft den Type der aktuellen Instanz ab. (Von Object geerbt.)
Öffentliche MethodeUnterstützt von XNA FrameworkGetTypeCodeGibt die TypeCode-Enumeration für den Werttyp Byte zurück.
Geschützte MethodeUnterstützt von XNA Frameworkyyb1w04y.PortableClassLibrary(de-de,VS.100).gifMemberwiseCloneErstellt eine flache Kopie des aktuellen Object. (Von Object geerbt.)
Öffentliche MethodeStatischer MemberUnterstützt von XNA FrameworkParse(String)Konvertiert die angegebene Zeichenfolgendarstellung einer Zahl in ihre Byte-Entsprechung.
Öffentliche MethodeStatischer MemberUnterstützt von XNA FrameworkParse(String, NumberStyles)Konvertiert die Zeichenfolgendarstellung einer Zahl in einem angegebenen Stil in die Byte-Entsprechung.
Öffentliche MethodeStatischer Memberyyb1w04y.PortableClassLibrary(de-de,VS.100).gifParse(String, IFormatProvider)Konvertiert die Zeichenfolgendarstellung einer Zahl in einem angegebenen kulturspezifischen Format in die Byte-Entsprechung
Öffentliche MethodeStatischer MemberUnterstützt von XNA Frameworkyyb1w04y.PortableClassLibrary(de-de,VS.100).gifParse(String, NumberStyles, IFormatProvider)Konvertiert die Zeichenfolgendarstellung einer Zahl in einem angegebenen kulturabhängigen Format in das entsprechende Byte.
Öffentliche MethodeUnterstützt von XNA Frameworkyyb1w04y.PortableClassLibrary(de-de,VS.100).gifToString()Konvertiert den Wert des aktuellen Byte-Objekts in die entsprechende Zeichenfolgendarstellung. (Überschreibt ValueType.ToString().)
Öffentliche MethodeUnterstützt von XNA Frameworkyyb1w04y.PortableClassLibrary(de-de,VS.100).gifToString(IFormatProvider)Konvertiert den numerischen Wert des aktuellen Byte-Objekts unter Verwendung der angegebenen kulturspezifischen Formatierungsinformationen in die entsprechende Zeichenfolgendarstellung.
Öffentliche MethodeUnterstützt von XNA FrameworkToString(String)Konvertiert den Wert des aktuellen Byte-Objekts unter Verwendung des angegebenen Formats in die entsprechende Zeichenfolgendarstellung.
Öffentliche MethodeUnterstützt von XNA Frameworkyyb1w04y.PortableClassLibrary(de-de,VS.100).gifToString(String, IFormatProvider)Konvertiert den Wert des aktuellen Byte-Objekts unter Verwendung des angegebenen Formats sowie der kulturspezifischen Formatierungsinformationen in die entsprechende Zeichenfolgendarstellung.
Öffentliche MethodeStatischer MemberTryParse(String, Byte)Versucht, die Zeichenfolgendarstellung einer Zahl in deren Byte-Entsprechung zu konvertieren, und gibt einen Wert zurück, der angibt, ob die Konvertierung erfolgreich durchgeführt wurde.
Öffentliche MethodeStatischer Memberyyb1w04y.PortableClassLibrary(de-de,VS.100).gifTryParse(String, NumberStyles, IFormatProvider, Byte)Konvertiert die Zeichenfolgendarstellung einer Zahl in einem angegebenen kulturabhängigen Format in das entsprechende Byte. Ein Rückgabewert gibt an, ob die Konvertierung erfolgreich war oder nicht.
Zum Seitenanfang

  NameBeschreibung
Öffentliches FeldStatischer MemberUnterstützt von XNA Frameworkyyb1w04y.PortableClassLibrary(de-de,VS.100).gifMaxValueStellt den größtmöglichen Wert von Byte dar. Dieses Feld ist konstant.
Öffentliches FeldStatischer MemberUnterstützt von XNA Frameworkyyb1w04y.PortableClassLibrary(de-de,VS.100).gifMinValueStellt den kleinstmöglichen Wert von Byte dar. Dieses Feld ist konstant.
Zum Seitenanfang

  NameBeschreibung
Explizite SchnittstellenimplementierungPrivate MethodeUnterstützt von XNA FrameworkIConvertible.ToBooleanInfrastruktur. Eine Beschreibung dieses Members finden Sie unter IConvertible.ToBoolean.
Explizite SchnittstellenimplementierungPrivate MethodeUnterstützt von XNA FrameworkIConvertible.ToByteInfrastruktur. Eine Beschreibung dieses Members finden Sie unter IConvertible.ToByte.
Explizite SchnittstellenimplementierungPrivate MethodeUnterstützt von XNA FrameworkIConvertible.ToCharInfrastruktur. Eine Beschreibung dieses Members finden Sie unter IConvertible.ToChar.
Explizite SchnittstellenimplementierungPrivate MethodeUnterstützt von XNA FrameworkIConvertible.ToDateTimeInfrastruktur. Diese Konvertierung wird nicht unterstützt. Bei dem Versuch der Verwendung dieser Methode wird eine InvalidCastException ausgelöst.
Explizite SchnittstellenimplementierungPrivate MethodeUnterstützt von XNA FrameworkIConvertible.ToDecimalInfrastruktur. Eine Beschreibung dieses Members finden Sie unter IConvertible.ToDecimal.
Explizite SchnittstellenimplementierungPrivate MethodeUnterstützt von XNA FrameworkIConvertible.ToDoubleInfrastruktur. Eine Beschreibung dieses Members finden Sie unter IConvertible.ToDouble.
Explizite SchnittstellenimplementierungPrivate MethodeUnterstützt von XNA FrameworkIConvertible.ToInt16Infrastruktur. Eine Beschreibung dieses Members finden Sie unter IConvertible.ToInt16.
Explizite SchnittstellenimplementierungPrivate MethodeUnterstützt von XNA FrameworkIConvertible.ToInt32Infrastruktur. Eine Beschreibung dieses Members finden Sie unter IConvertible.ToInt32.
Explizite SchnittstellenimplementierungPrivate MethodeUnterstützt von XNA FrameworkIConvertible.ToInt64Infrastruktur. Eine Beschreibung dieses Members finden Sie unter IConvertible.ToInt64.
Explizite SchnittstellenimplementierungPrivate MethodeUnterstützt von XNA FrameworkIConvertible.ToSByteInfrastruktur. Eine Beschreibung dieses Members finden Sie unter IConvertible.ToSByte.
Explizite SchnittstellenimplementierungPrivate MethodeUnterstützt von XNA FrameworkIConvertible.ToSingleInfrastruktur. Eine Beschreibung dieses Members finden Sie unter IConvertible.ToSingle.
Explizite SchnittstellenimplementierungPrivate MethodeUnterstützt von XNA FrameworkIConvertible.ToTypeInfrastruktur. Eine Beschreibung dieses Members finden Sie unter IConvertible.ToType.
Explizite SchnittstellenimplementierungPrivate MethodeUnterstützt von XNA FrameworkIConvertible.ToUInt16Infrastruktur. Eine Beschreibung dieses Members finden Sie unter IConvertible.ToUInt16.
Explizite SchnittstellenimplementierungPrivate MethodeUnterstützt von XNA FrameworkIConvertible.ToUInt32Infrastruktur. Eine Beschreibung dieses Members finden Sie unter IConvertible.ToUInt32.
Explizite SchnittstellenimplementierungPrivate MethodeUnterstützt von XNA FrameworkIConvertible.ToUInt64Infrastruktur. Eine Beschreibung dieses Members finden Sie unter IConvertible.ToUInt64.
Zum Seitenanfang

Byte ist ein unveränderlicher Werttyp, der ganze Zahlen ohne Vorzeichen mit Werten darstellt, die von 0 (durch die Byte.MinValue-Konstante dargestellt) und 255 (durch die Byte.MaxValue-Konstante dargestellt) reichen. .NET Framework schließt auch einen 8-Bit-Ganzzahlwert-Typ mit Vorzeichen ein, SByte, der Werte darstellt, die zwischen -128 und 127 liegen.

Instanziieren eines Byte-Werts

Sie können auf mehrere Weisen einen Byte-Wert instanziieren:

  • Sie können eine Byte-Variable deklarieren und dieser einen ganzzahligen Literalwert zuweisen, der innerhalb des Bereichs des Byte-Datentyps ist. Im folgenden Beispiel werden zwei Byte-Variablen deklariert und ihnen auf diese Weise Werte zugewiesen.

    
    byte value1 = 64;
    byte value2 = 255;
    
    
    
  • Sie können einem Byte einen numerischen Nicht-Byte-Wert zuweisen. Dies ist eine Eingrenzungskonvertierung, für die ein Umwandlungsoperator in C# und eine Konvertierungsmethode in Visual Basic erforderlich ist, wenn OptionStrict aktiviert ist. Wenn der Nicht-Byte-Wert ein Single-, Double- oder Decimal-Wert ist, der eine Nachkommastelle einschließt, wird hängt die Behandlung seines Bruchteils vom Compiler ab, der die Konvertierung ausführt. Im folgenden Beispiel werden mehrere numerische Werte Byte-Variablen zugewiesen.

    
    int int1 = 128;
    try {
       byte value1 = (byte) int1;
       Console.WriteLine(value1);
    }
    catch (OverflowException) {
       Console.WriteLine("{0} is out of range of a byte.", int1);
    }
    
    double dbl2 = 3.997;
    try {
       byte value2 = (byte) dbl2;
       Console.WriteLine(value2);
    }
    catch (OverflowException) {
       Console.WriteLine("{0} is out of range of a byte.", dbl2);
    }
    // The example displays the following output:
    //       128
    //       4      
    
    
    
  • Sie können eine Methode der Convert-Klasse aufrufen, um einen beliebigen unterstützten Typ in einen Byte-Wert zu konvertieren. Dies ist möglich, da Byte die IConvertible-Schnittstelle unterstützt. Im folgenden Beispiel wird das Konvertieren eines Arrays von Int32-Werten in Byte-Werte veranschaulicht.

    
    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.      
    
    
    
  • Sie können die Parse-Methode oder TryParse-Methode aufrufen, um die Zeichenfolgendarstellung eines Byte-Werts in ein Byte zu konvertieren. Die Zeichenfolge kann entweder Dezimal- oder Hexadezimalziffern enthalten. Im folgenden Beispiel wird der Analysevorgang mit einer dezimalen und einer Hexadezimalzeichenfolge veranschaulicht.

    
    string string1 = "244";
    try {
       byte byte1 = Byte.Parse(string1);
       Console.WriteLine(byte1);
    }
    catch (OverflowException) {
       Console.WriteLine("'{0}' is out of range of a byte.", string1);
    }
    catch (FormatException) {
       Console.WriteLine("'{0}' is out of range of a byte.", string1);
    }
    
    string string2 = "F9";
    try {
       byte byte2 = Byte.Parse(string2, 
                               System.Globalization.NumberStyles.HexNumber);
       Console.WriteLine(byte2);
    }
    catch (OverflowException) {
       Console.WriteLine("'{0}' is out of range of a byte.", string2);
    }
    catch (FormatException) {
       Console.WriteLine("'{0}' is out of range of a byte.", string2);
    }
    // The example displays the following output:
    //       244
    //       249
    
    
    

Ausführen von Operationen mit Byte-Werten

Der Byte-Typ unterstützt mathematische Standardoperationen, wie z. B. Addition, Subtraktion, Division, Multiplikation, Negation und unäre Negation. Wie die anderen ganzzahligen Typen unterstützt der Byte-Typ ebenfalls die bitweisen Operatoren AND, OR, XOR, Schieben nach links und Schieben nach rechts.

Sie können zwei Byte-Werte mithilfe der numerischen Standardoperatoren vergleichen, oder Sie können die CompareTo-Methode oder die Equals-Methode aufrufen.

Stellt einen Byte-Wert als String dar

Der Byte-Typ bietet vollständige Unterstützung für Standard und benutzerdefinierte numerische Formatzeichenfolgen. (Weitere Informationen finden Sie unter Formatierung von Typen, Standardmäßige Zahlenformatzeichenfolgen und Benutzerdefinierte Zahlenformatzeichenfolgen.) Bytewerte werden jedoch am häufigsten als ein- bis dreistellige Werte ohne jede zusätzliche Formatierung dargestellt, oder als zweistellige Hexadezimalwerte.

Um einen Byte-Wert als ganzzahlige Zeichenfolge ohne führende Nullen zu formatieren, können Sie die parameterlose ToString()-Methode aufrufen. Mit dem Formatbezeichner "D" können Sie auch eine angegebene Anzahl von führenden Nullen in die Zeichenfolgendarstellung einschließen. Mit dem Formatspezifizierer "X" können Sie einen Byte-Wert als hexadezimale Zeichenfolge darstellen. Im folgenden Beispiel werden die Elemente in einem Array von Byte-Werten auf diese drei Arten formatiert.


byte[] numbers = { 0, 16, 104, 213 };
foreach (byte number in numbers) {
   // Display value using default formatting.
   Console.Write("{0,-3}  -->   ", number.ToString());
   // Display value with 3 digits and leading zeros.
   Console.Write(number.ToString("D3") + "   ");
   // Display value with hexadecimal.
   Console.Write(number.ToString("X2") + "   ");
   // Display value with four hexadecimal digits.
   Console.WriteLine(number.ToString("X4"));
}   
// The example displays the following output:
//       0    -->   000   00   0000
//       16   -->   016   10   0010
//       104  -->   104   68   0068
//       213  -->   213   D5   00D5      


Sie können auch einen Byte-Wert als binäre, oktale, dezimale oder hexadezimale Zeichenfolge formatieren, indem Sie die ToString(Byte, Int32)-Methode aufrufen und die Basis als zweiten Parameter der Methode angeben. Im folgenden Beispiel wird diese Methode aufgerufen, um die binäre, oktale und hexadezimale Darstellung eines Arrays von Bytewerten anzuzeigen.


byte[] numbers ={ 0, 16, 104, 213 };
Console.WriteLine("{0}   {1,8}   {2,5}   {3,5}",
                  "Value", "Binary", "Octal", "Hex");
foreach (byte number in numbers) {
   Console.WriteLine("{0,5}   {1,8}   {2,5}   {3,5}",
                     number, Convert.ToString(number, 2),
                     Convert.ToString(number, 8),
                     Convert.ToString(number, 16));
}      
// The example displays the following output:
//       Value     Binary   Octal     Hex
//           0          0       0       0
//          16      10000      20      10
//         104    1101000     150      68
//         213   11010101     325      d5      


Arbeiten mit nicht dezimalen Byte-Werten

Zusätzlich zum Arbeiten mit einzelnen Bytes als Dezimalwerte können Sie bitweise Operationen mit Bytewerten ausführen oder mit Bytearrays oder den binären oder hexadezimalen Darstellungen von Bytewerten arbeiten. Überladungen der BitConverter.GetBytes-Methode können z. B. jeden der primitiven Datentypen in ein Bytearray konvertieren, und die BigInteger.ToByteArray-Methode konvertiert einen BigInteger-Wert in ein Bytearray.

Byte -Werte werden nur durch ihre Größe, ohne Vorzeichenbit, in 8 Bits dargestellt. Dies muss beachtet werden, wenn Sie bitweise Operationen mit Byte-Werten ausführen, oder wenn Sie mit einzelnen Bits arbeiten. Um eine numerische, boolesche oder Vergleichsoperation für beliebige zwei Nicht-Dezimalwerte auszuführen, müssen beide Werte die gleiche Darstellung verwenden.

Wenn ein Vorgang für zwei Byte-Werte ausgeführt wird, werden die Werte gleich dargestellt, deshalb ist das Ergebnis genau. Dies wird im folgenden Beispiel veranschaulicht, in dem das niedrigstwertige Bit eines Byte-Werts maskiert wird, um sicherzustellen, dass dieser gerade ist.


using System;
using System.Globalization;

public class Example
{
   public static void Main()
   {
      string[] values = { Convert.ToString(12, 16), 
                          Convert.ToString(123, 16), 
                          Convert.ToString(245, 16) };

      byte mask = 0xFE;
      foreach (string value in values) {
         Byte byteValue = Byte.Parse(value, NumberStyles.AllowHexSpecifier);
         Console.WriteLine("{0} And {1} = {2}", byteValue, mask,  
                           byteValue & mask);
      }
   }
}
// The example displays the following output:
//       12 And 254 = 12
//       123 And 254 = 122
//       245 And 254 = 244


Wenn Sie andererseits mit Bits mit und auch ohne Vorzeichen arbeiten, werden bitweise Vorgänge vom Fakt kompliziert, dass die SByte-Werte die Vorzeichen-Wert-Darstellung für positive Werte und Zweierkomplementdarstellung für negative Werte verwenden. Um eine sinnvolle bitweise Operation auszuführen, müssen die Werte in zwei entsprechende Darstellungen konvertiert werden, und Informationen zum Vorzeichenbit müssen beibehalten werden. Im folgenden Beispiel wird dies ausgeführt, um Bits 2 und 4 in einem Array von 8-Bit-Ganzzahlen mit und ohne Vorzeichen zu maskieren.


using System;
using System.Collections.Generic;
using System.Globalization;

public struct ByteString
{
   public string Value;
   public int Sign;
}

public class Example
{
   public static void Main()
   {
      ByteString[] values = CreateArray(-15, 123, 245);

      byte mask = 0x14;        // Mask all bits but 2 and 4.

      foreach (ByteString strValue in values) {
         byte byteValue = Byte.Parse(strValue.Value, NumberStyles.AllowHexSpecifier);
         Console.WriteLine("{0} ({1}) And {2} ({3}) = {4} ({5})", 
                           strValue.Sign * byteValue, 
                           Convert.ToString(byteValue, 2), 
                           mask, Convert.ToString(mask, 2), 
                           (strValue.Sign & Math.Sign(mask)) * (byteValue & mask), 
                           Convert.ToString(byteValue & mask, 2));
      }
   }

   private static ByteString[] CreateArray(params int[] values)
   {
      List<ByteString> byteStrings = new List<ByteString>();

      foreach (object value in values) {
         ByteString temp = new ByteString();
         int sign = Math.Sign((int) value);
         temp.Sign = sign;

         // Change two's complement to magnitude-only representation.
         temp.Value = Convert.ToString(((int) value) * sign, 16);

         byteStrings.Add(temp);
      }
      return byteStrings.ToArray();
   }
}
// The example displays the following output:
//       -15 (1111) And 20 (10100) = 4 (100)
//       123 (1111011) And 20 (10100) = 16 (10000)
//       245 (11110101) And 20 (10100) = 20 (10100)


.NET Framework

Unterstützt in: 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Unterstützt in: 4, 3.5 SP1

Unterstützt in:

Windows 7, Windows Vista SP1 oder höher, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core wird nicht unterstützt), Windows Server 2008 R2 (Server Core wird mit SP1 oder höher unterstützt), Windows Server 2003 SP2

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.

Alle Member dieses Typs sind threadsicher. Member, die scheinbar den Zustand einer Instanz ändern, geben in Wirklichkeit eine neue Instanz zurück, die mit dem neuen Wert initialisiert wurde. Wie bei allen anderen Typen müssen Lese- und Schreibzugriffe auf eine freigegebene Variable, die eine Instanz dieses Typs enthält, durch eine Sperre geschützt werden, um die Threadsicherheit zu gewährleisten.

Anzeigen: