Déclaration de variable avec opérateur OR

Résolu
fiko81
Messages postés
381
Date d'inscription
vendredi 24 septembre 2004
Statut
Membre
Dernière intervention
5 septembre 2010
- 12 sept. 2008 à 10:23
fiko81
Messages postés
381
Date d'inscription
vendredi 24 septembre 2004
Statut
Membre
Dernière intervention
5 septembre 2010
- 12 sept. 2008 à 12:36
Bonjour à tous,
J'ai une question qui semble assez bête dont j'ai besoin de connaitre la signification :
J'ai un enum déclaré dans une classe



Public





Enum

enumTest
  a = 1
  b = 2
  c = 4
  d = 8



End





Enum



Quelle est l'intérêt de déclarer une variable comme cela :
Dim eTest As
enumTest = enumTest.a Or enumTest.d

Cette écriture je la vois régulièrement sans trop comprendre.
Merci pour votre aide. Fiko ;-)

La reponse vous convient pensez > Accepter <
<hr />

6 réponses

lesdis
Messages postés
403
Date d'inscription
mercredi 19 avril 2006
Statut
Membre
Dernière intervention
7 août 2020
1
12 sept. 2008 à 11:56
Bonjour,

Il est couramment utilisé le masquage de bit lorsque plusieurs options peuvent être utilisé en même temps :

un objet peut être rouge ou vert et/ou rond ou carré -->

public Enum objet
rond = 1
carré = 2
vert = 4
rouge = 8
end enum

dim myObject as objet  = objet.rond Or objet.vert

Maintenant si tu veux vérifier de quel type est l'objet :

if myObject And objet.rond then
  msgbox("ceci est un rond")
end if

Je te conseille de regarder ces liens pour mieux comprendre les fonctions logiques :
http://fr.wikipedia.org/wiki/OU_exclusif
http://fr.wikipedia.org/wiki/Fonction_OU
http://fr.wikipedia.org/wiki/Fonction_ET
http://fr.wikipedia.org/wiki/Fonction_logique

Bonne Prog
3
jrivet
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
59
12 sept. 2008 à 10:54
Salut,

Un Or equivaut à un +, donc dans ton exemple eTest vaudra 9 (a + d)

@+: Ju£i€n
Pensez: Réponse acceptée
0
jrivet
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
59
12 sept. 2008 à 10:55
J'ai envoyé trop tôt ... j'allais terminer en disant que je ne suis pas un pro de .NET alors j'espère ne pas avoir dit de bêtise plus grosse que moi

@+: Ju£i€n
Pensez: Réponse acceptée
0
fiko81
Messages postés
381
Date d'inscription
vendredi 24 septembre 2004
Statut
Membre
Dernière intervention
5 septembre 2010
3
12 sept. 2008 à 11:09
Merci,
Tu n'as pas dit de bétise, c'est bien égale à 9.
Par contre je ne comprend pas pourquoi cette ecriture car lors d'un test, je ne pourrait jamais verifier que ma variable eTest vaut a, b, c, ou d.
(Exemple du select case...)

 Fiko ;-)

La reponse vous convient pensez > Accepter <
<hr />
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jrivet
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
59
12 sept. 2008 à 11:18
Salut,
"je ne pourrait jamais verifier que ma variable eTest vaut a, b, c, ou d."
Il faut voir le contexte.
Ton Enum ressemble Fortement à des valeurs de bits binaires

8 4 2 1

Mais je ne connais pas tout le programme.

@+: Ju£i€n
Pensez: Réponse acceptée
0
fiko81
Messages postés
381
Date d'inscription
vendredi 24 septembre 2004
Statut
Membre
Dernière intervention
5 septembre 2010
3
12 sept. 2008 à 12:36
Merci,
Il me semblait bien que c'était un truc comme ça mais il me manquait l'opérateur AND dans 'if myObject And objet.rond then'
Merci encore.

 Fiko ;-)

La reponse vous convient pensez > Accepter <
<hr />
0