2013-03-20 6 views
5

Nun, ich versuche, Einschränkungen in ConstAusdrücke in VBScript zu verstehen. Ich konnte nichts außer Literalen verwenden. Was the docs say ist:Understanding const Ausdruck in VBScript

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

Also, wenn „dass alle arithmetischen oder logischen Operatoren umfasst“ dann logisch erwarte ich, dass ich etwas tun kann:

Const X = (1 + 2) 

Aber das bringt den Fehler „Erwartete literale Konstante ". Ich fand eine interessante Antwort here, die man, auf einer bestimmten Ebene betrügen können, so dass die obige kann gemacht werden:

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

Aber meine Frage ist über Standard-Konstante Erklärung. Wenn die Doktoren zufällig etwas wie "Ausdruck könnte NUR buchstäblich" sagen, würde ich nie fragen.
Also was kann ich sonst (neben Literal) verwenden?

+0

Gute alte Microsoft Ambiguität. Wenn Sie die erste ohne die Klammern machen, was passiert? – bugmagnet

+0

test.vbs (1, 16) Microsoft VBScript-Kompilierungsfehler: erwartete literale Konstante – bugmagnet

+0

Danke für schnelle Antwort. Wenn Klammern abgeschnitten, kein Unterschied, gleicher Fehler – seeker

Antwort

3

Script56.chm sagt der folgende im Abschnitt Bemerkungen:

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.

Das Bit kursiv macht über einen Unsinn der „oder einer beliebigen Kombination, die alle arithmetischen oder logischen Operatoren außer Ist enthält“ Anspruch.

+0

Huh, offen widersprüchlich :) Also, was Sie vorschlagen, ist, dass Bemerkungen Abschnitt richtig ist, richtig? – seeker

+0

Das wäre meine Meinung, ja. Vielleicht war es, dass zwei (oder mehr?) Leute die Dokumente geschrieben haben und dass sie nicht gut kommuniziert haben, oder dass die Const-Notation leistungsfähiger sein würde, aber am Ende nie ganz da war. So oder so, wir haben einen Widerspruch und meine Erfahrung mit VBScript begünstigt das Lesen von Bemerkungen. – bugmagnet

+0

Ich werde auf Ihre Erfahrung verlassen und dies als Antwort akzeptieren, danke. – seeker