2013-03-20 17 views
5

Bene, provo a capire le limitazioni in Constespressioni in VBScript. Non ero in grado di usare qualsiasi cosa tranne i letterali. Cosa the docs say è:Comprensione dell'espressione Const in VBScript

Literal or other constant, or any combination that includes all arithmetic or logical operators exceptIs.

Quindi, se "che comprende tutti gli operatori aritmetici o logici", allora logicamente mi aspetto che posso fare qualcosa di simile:

Const X = (1 + 2) 

Ma che porta l'errore "Previsto costante letterale ". Ho trovato una risposta interessante here che permette di imbrogliare, a un certo livello, in modo da quanto sopra può essere fatto con:

Execute "Const X = " & (1 + 2) 

Ma la mia domanda è circa dichiarazione di costante standard. Se per caso i documenti dicessero qualcosa come "l'espressione potrebbe essere SOLO letterale", allora non lo chiederei mai.
Quindi che altro posso usare (oltre al letterale)?

+0

Buona vecchia ambiguità Microsoft. Se fai il primo senza parentesi, cosa succede? – bugmagnet

+0

test.vbs (1, 16) Errore di compilazione Microsoft VBScript: costante letterale prevista – bugmagnet

+0

Grazie per la risposta rapida. Se si tagliano parentesi, nessuna differenza, stesso errore – seeker

risposta

3

Script56.chm dice quanto segue nella sezione Osservazioni:

Constants are public by default. Within procedures, constants are always private; their visibility can't be changed. Within a script, the default visibility of a script-level constant can be changed using the Private keyword.

To combine several constant declarations on the same line, separate each constant assignment with a comma. When constant declarations are combined in this way, the Public or Private keyword, if used, applies to all of them.

You can't use variables, user-defined functions, or intrinsic VBScript functions (such as Chr) in constant declarations. By definition, they can't be constants. You also can't create a constant from any expression that involves an operator, that is, only simple constants are allowed. Constants declared in a Sub or Function procedure are local to that procedure. A constant declared outside a procedure is defined throughout the script in which it is declared. You can use constants anywhere you can use an expression.

Il bit in corsivo sopra fa una sciocchezza del "o qualsiasi combinazione che comprende tutta l'aritmetica o operatori logici tranne Is" pretesa.

+0

Huh, apertamente contraddittorio :) Quindi, quello che suggerisci è che la sezione Commenti è corretta, giusto? – seeker

+0

Sarebbe la mia opinione su di esso, sì. Forse era che due (o più?) Persone scrivevano i documenti e che non comunicavano bene, o che la notazione di Const sarebbe stata più potente, ma alla fine non arrivò mai. Ad ogni modo, abbiamo una contraddizione e la mia esperienza con VBScript favorisce la lettura dei commenti. – bugmagnet

+0

Mi affido alla tua esperienza e accetto questo come risposta, grazie. – seeker