2010-02-17 1 views
1

Je m'attends à ce que cela fonctionne (ci-dessous) Si iTestVar est à 1, je pense que DoStuff() sera déclenché. Cependant, il tombe toujours dans l'autre.Pouvez-vous utiliser des constantes dans les instructions de commutateur VbScript?

J'ai étudié const dans le passé et j'ai constaté qu'ils ne peuvent être définis qu'en dehors des classes. L'instruction select est à l'intérieur de la classe.

 'This is defined outside of the class (vbscript won't allow const inside classes) 
     Const STOPHERECONSTANT = 1 


     Select Case iTestVar 
      Case STOPHERECONSTANT 

       DoStuff() 

      Case Else 

     End Select 
+0

Si vous êtes à la recherche d'informations sur les classes const à l'intérieur, cela peut être trouvé ici: http://channel9.msdn.com/forums/TechOff/255174- Stupide-VBscript-Class-Implementation/ –

Répondre

2

Mon mauvais, je suis sûr que j'ai testé cela, mais je dois l'avoir raté, tout en corrigeant autre chose.

je devais convertir le iTestVar:

'This is defined outside of the class (vbscript won't allow const inside classes) 
    Const STOPHERECONSTANT = 1 


    Select Case CInt(iTestVar) 
     Case STOPHERECONSTANT 

      DoStuff() 

     Case Else 

    End Select 
+2

Vous ne transtypez pas en VBScript que vous convertissez. Je suppose que iTestVar a été assigné une chaîne. Si iTestVar est supposé être une chaîne alors vous devriez le renommer en sTestVar, alternativement si iTestVar est censé être un entier, alors vous devriez vous assurer qu'il lui est toujours assigné un entier à la source. Vous ne devriez pas avoir à convertir constamment quelque chose qui semble être un entier __to__ un entier. – AnthonyWJones

+0

Merci de me corriger sur le casting contre convertir. C'est la chose étrange iTestVar est toujours un integer. Cependant, lorsque vous utilisez un const, le seul moyen de faire fonctionner le swtich est de le convertir en premier. –

+0

Pantalon! Mon mal une fois de plus! Je vois où le problème réside maintenant, dans mon scénario iTestVar est mis en place par un poste de formulaire. Même si le post du formulaire affiche toujours un nombre, la valeur (je devine) est passée comme une chaîne. Double "mon mauvais" - comme je ne l'avais pas inclus dans le message original. –

Questions connexes