Stellen Sie sicher, Nummer gegossen richtig in .NET
Frage
Ich weiß, dass ich einen Wert speziell mit einem Schwimmer zuweisen kann, indem Sie
float y = 4.5f;
Ich möchte die gleiche Sache zu tun, außer als ein Byte. Wie mache ich das? Ich habe die MSDN-Dokumentation überprüft und nichts im Zusammenhang damit finden. Auch, was ist das genannt?
Danke,
[Bearbeiten]
Aus Gründen der Klarheit der Code ich dies mit auf ist
byte myByte = a==b?1:0;
und die Fehler, die ich erhalten, ist
Kann nicht implizit Typ ‚int‘ konvertieren zu 'Byte?'. Eine explizite Konvertierung existiert (möglicherweise fehlt eine Besetzung?)
Lösung
byte myByte = (byte)(a==b?1:0);
Lösung
Die byte
, sbyte
, short
und ushort
Datentypen haben nicht bezeichnet Suffixe. Jedoch kann Ganzzahlliteral auf Variablen dieser Datentypen zugeordnet werden und implizit konvertiert wird, unter der Annahme, dass der Wert für die Speicherung in den Variablen geeignet ist. Nur für das Protokoll sind hier die definierten Literale in C #:
uint: U or u
long: L or l
ulong: UL or ul
float: F or f
decimal: M or m
Andere Tipps
Ich würde nur eine Besetzung verwenden.
// Okay
Byte data = (Byte) 57;
// Error (but I don't know if it is a compiler error or a runtime error)
Byte data = (Byte) -17;
oder führt eine Konstante ist.
// Okay
const Byte foo = 57;
Byte data = foo;
// Compiler Error
const Byte foo = -17;
Byte data = foo;
Nach diesem Beitrag Byte hat keine solche Suffix.
Sie brauchen kein Suffix, wenn ein Byte zu definieren:
byte b = 1;
Sie müssen nur sicherstellen, dass Ihr Wert zwischen 0 und 255 ist.
MSDN bezieht sich auf die Verwendung des F als ‚Suffix‘, einen wörtlichen Typen erzwingen.
Sehen Sie im folgenden Artikel unter Cis Online für weitere Informationen
Hex-Notation:
Byte b = 0xff;