byte (C#-Referenz)

byte kennzeichnet einen ganzzahligen Typ, der Werte anhand der folgenden Tabelle speichert.

Typ Bereich Größe .NET Framework-Typ
byte 0 bis 255 8-Bit-Ganzzahl ohne Vorzeichen System.Byte

Literale

Sie können eine byte-Variable deklarieren und initialisieren, indem Sie ihr ein dezimales Literal, ein hexadezimales Literal oder (beginnend mit C# 7) ein binäres Literal zuweisen. Wenn Sich das Ganzzahlliteral außerhalb des Bereichs von byte befindet – sprich, wenn es kleiner als Byte.MinValue oder größer als Byte.MaxValue ist – tritt ein Kompilierfehler auf.

Im folgenden Beispiel werden ganze Zahlen, die gleich 201 sind und von dezimalen, hexadezimalen und binären Literalen dargestellt werden, implizit von int- in byte-Werte konvertiert.

byte byteValue1 = 201;
Console.WriteLine(byteValue1);

byte byteValue2 = 0x00C9;
Console.WriteLine(byteValue2);

byte byteValue3 = 0b1100_1001;
Console.WriteLine(byteValue3);
// The example displays the following output:
//          201
//          201
//          201
Hinweis

Verwenden Sie das Präfix 0x oder 0X zum Kennzeichnen eines hexadezimalen Literals und das Präfix 0b oder 0B zum Kennzeichnen eines binären Literals. Dezimale Literale haben kein Präfix.

Ab C# 7 können Sie auch den Unterstrich, _, als Zifferntrennzeichen zum Verbessern der Lesbarkeit verwenden, wie im folgenden Beispiel veranschaulicht.

byte byteValue3 = 0b1100_1001;
Console.WriteLine(byteValue3);
// The example displays the following output:
//          201

Konvertierungen

Es gibt eine vordefinierte implizite Konvertierung von byte in short, ushort, int, uint, long, ulong, float, double oder decimal.

Sie können nicht literale numerische Typen mit einer größeren Speichergröße nicht implizit zu byte konvertieren. Weitere Informationen zu Speichergrößen ganzzahliger Typen finden Sie unter Tabelle ganzzahliger Typen. Betrachten Sie z.B. die folgenden beiden byte-Variablen x und y:

byte x = 10, y = 20;  

Die folgende Zuweisungsanweisung erzeugt einen Compilerfehler, da der arithmetische Ausdruck auf der rechten Seite des Zuweisungsoperators standardmäßig int ergibt.

// Error: conversion from int to byte:  
byte z = x + y;  

Verwenden Sie eine Umwandlung, um dieses Problem zu lösen:

// OK: explicit conversion:  
byte z = (byte)(x + y);  

Es ist jedoch möglich, die folgenden Anweisungen zu verwenden, bei denen die Zielvariable über dieselbe oder eine größere Speichergröße verfügt:

int x = 10, y = 20;  
int m = x + y;  
long n = x + y;  

Beachten Sie auch, dass es keine implizite Konvertierung von Gleitkommadatentypen in byte gibt. Die folgende Anweisung erzeugt z.B. einen Compilerfehler, außer es wird eine explizite Umwandlung verwendet:

// Error: no implicit conversion from double:  
byte x = 3.0;   
// OK: explicit conversion:  
byte y = (byte)3.0;  

Beim Aufrufen überladener Methoden muss eine Typumwandlung durchgeführt werden. Betrachten Sie z.B. die folgenden überladenen Methoden, die die Parameter byte und int verwenden:

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

Die Verwendung der byte-Umwandlung gewährleistet, dass der richtige Typ aufgerufen wird, wie z.B.:

// Calling the method with the int parameter:  
SampleMethod(5);  
// Calling the method with the byte parameter:  
SampleMethod((byte)5);  

Weitere Informationen zu arithmetischen Ausdrücken mit gemischten Gleitkomma- und ganzzahligen Typen finden Sie unter float und double.

Weitere Informationen zu impliziten numerischen Konvertierungsregeln finden Sie in der Tabelle für implizite numerische Konvertierungen.

C#-Programmiersprachenspezifikation

Weitere Informationen erhalten Sie unter C#-Sprachspezifikation. Die Sprachspezifikation ist die verbindliche Quelle für die Syntax und Verwendung von C#.

Siehe auch

Byte
C#-Referenz
C#-Programmierhandbuch
C#-Schlüsselwörter
Tabelle ganzzahliger Typen
Tabelle integrierter Typen
Tabelle für implizite numerische Konvertierungen
Tabelle für explizite numerische Konvertierungen