Opérateur<<

Signaler
Messages postés
11
Date d'inscription
vendredi 23 mars 2007
Statut
Membre
Dernière intervention
5 avril 2007
-
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
-
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

Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
36
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]