Opérateur<<

cs_ull Messages postés 11 Date d'inscription vendredi 23 mars 2007 Statut Membre Dernière intervention 5 avril 2007 - 4 avril 2007 à 12:50
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 - 4 avril 2007 à 13:29
bonjour
jai mon code comme suit:
le masque est déclaré comme long
j en entier
num_du une constante de type int qui est déclarée dans la calsse UneArm
masque =1L << (j - UneArm.num_du)

mais il me met l'arreur 

 L'opérateur '<<' ne peut pas être appliqué aux opérandes de type 'long' et 'long' 

et aussi
quand je met:

if (MarcDuite & masque)

MarcDuite est un uint
masque est un long
l' Erreur : Impossible de convertir implicitement le type 'long' en 'bool' 

quelq'un peut m'aider.

merci

nad

1 réponse

sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
4 avril 2007 à 13:29
bon... on recommence...

en C# le if n'accepte que le type booléen... donc if (MarcDuite & masque) est incorrect..

pour que ca fonctionne il faut faire : if ((MarcDuite & masque) == masque)

http://msdn2.microsoft.com/fr-fr/library/5011f09h(VS.80).aspx

pour le <<, le second opérande doit obligatoirement être un int !
http://msdn2.microsoft.com/fr-fr/library/a1sway8w(VS.80).aspx

Sébastien FERRAND (blog)
Consultant Indépendant
[Microsoft Visual C# MVP]
0
Rejoignez-nous