Assurez-vous correctement le numéro est lancé dans .NET
Question
Je sais que je peux attribuer une valeur spécifique à un flotteur en faisant
float y = 4.5f;
Je veux faire la même chose, sauf un octet. Comment puis-je faire cela? J'ai vérifié la documentation MSDN et ne peut pas trouver quoi que ce soit lié à cela. De plus, quel est ce nom?
Merci,
[Modifier]
Pour plus de clarté le code que je utilise tout ceci est
byte myByte = a==b?1:0;
et l'erreur que je reçois est
Impossible de convertir implicitement le type 'int' à « octet? ». Une conversion explicite EXISTE (vous manque un casting?)
Solution
byte myByte = (byte)(a==b?1:0);
La solution
Le byte
, sbyte
, types de données et de short
ushort
ne sont pas désignés suffixes. Cependant, peut être littéral entier affecté à des variables de ces types de données et seront convertis implicitement, en supposant que la valeur est appropriée pour le stockage dans la variable. Pour le compte rendu ici sont les littéraux définis en C #:
uint: U or u
long: L or l
ulong: UL or ul
float: F or f
decimal: M or m
Autres conseils
Je voudrais simplement utiliser un casting.
// 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;
Ou introduire une constante.
// Okay
const Byte foo = 57;
Byte data = foo;
// Compiler Error
const Byte foo = -17;
Byte data = foo;
Selon ce message , l'octet n'a pas un tel suffixe.
Vous n'avez pas besoin d'un suffixe lors de la définition d'un octet:
byte b = 1;
Il vous suffit de vous assurer que votre valeur est comprise entre 0 et 255.
MSDN fait référence à l'utilisation du F comme un « suffixe », forçant un type littérales.
Voir l'article suivant en ligne C-sharp pour plus d'informations
notation Hex:
octet 0xFF = b;