在VBScript中获取变量的类型

Ash*_*nko 51 vbscript asp-classic

如何使用VBScript获取变量的类型?

Mar*_*ith 68

VarType函数你需要什么?

返回表示变量子类型的值.

+--------------+-------+---------------------------------------------+
|   Constant   | Value |                 Description                 |
+--------------+-------+---------------------------------------------+
| vbEmpty      |     0 | Empty (uninitialized)                       |
| vbNull       |     1 | Null (no valid data)                        |
| vbInteger    |     2 | Integer                                     |
| vbLong       |     3 | Long integer                                |
| vbSingle     |     4 | Single-precision floating-point number      |
| vbDouble     |     5 | Double-precision floating-point number      |
| vbCurrency   |     6 | Currency                                    |
| vbDate       |     7 | Date                                        |
| vbString     |     8 | String                                      |
| vbObject     |     9 | Automation object                           |
| vbError      |    10 | Error                                       |
| vbBoolean    |    11 | Boolean                                     |
| vbVariant    |    12 | Variant (used only with arrays of Variants) |
| vbDataObject |    13 | A data-access object                        |
| vbDecimal    |    14 | Decimal Value                               |
| vbByte       |    17 | Byte                                        |
| vbLongLong   |    20 | LongLong integer (64 bit)                   |
| vbArray      |  8192 | Array                                       |
+--------------+-------+---------------------------------------------+
Run Code Online (Sandbox Code Playgroud)

VarType函数永远不会返回Array的值.它总是被添加到某个其他值以指示特定类型的数组.仅当将Variant的值添加到Array的值以指示VarType函数的参数是数组时,才会返回Variant的值.例如,为整数数组返回的值计算为2 + 8192或8194.如果对象具有默认属性,则VarType(object)返回其默认属性的类型.

  • 8 = vbString - 表示一个字符串(来自我的回答中的链接) (5认同)
  • 干杯.在询问之前应该说常识应该检查一下.抱歉.+众议员. (2认同)
  • 请注意,并非所有 VB 方言都支持所有类型。在 VBScript 的情况下(如问题中所问),似乎只使用了 0 到 9、11 和 17。并且数组显然总是返回 8204(“变体数组”),无论您在其中放入什么值。 (2认同)

Tmd*_*ean 26

如果要获取分配给变量的对象的类型名称Set,可以TypeName改为使用.

Class SomeClass
    '' empty class
End Class

Dim x
Set x = New SomeClass
WScript.Echo TypeName(x)  '' displays "SomeClass"
Run Code Online (Sandbox Code Playgroud)


use*_*001 7

Tmdean的答案也适用于获取(几乎)所有其他类型变量的类型名称(不是整数)(根据http://msdn.microsoft.com/en-us/library/ie/y58s1cs6%28v=vs .84%29.aspx)

dim i,s,a
i = 1
s = "Hello world"
a = split("Hello World"," ")

WScript.Echo TypeName(i) 'Displays "Integer"
WScript.Echo TypeName(s) 'Displays "String"
WScript.Echo TypeName(a) 'Displays "Variant()"
Run Code Online (Sandbox Code Playgroud)