分享此页面

# 使用之前检查值类型

VBScript 是“弱类型”编程语言。这意味着您可以创建、使用和访问数据值，而无需一开始就声明其类型。但是，某些操作只能对特定类型的值执行。因此，对它们执行任何操作之前先检查数据类型是很重要的。

不同类型的值在不同语句中有不同的行为。对象值的行为甚至更不可预知，因为行为取决于对象的实现。例如，调用 <实体>_CanDelete(Entity) 中的对象可以是文本或主题节点。

## 建议

要避免不可预知的结果：

- 使用之前先检查值的类型，尤其是对象类型。检查对象类型时，还检查对象有无您访问的属性。

备注: 在此部分中提供的示例中，使用之前只检查对象类型。

- 假定尽可能少 - 不要假定某值属于特定类型。通过使用 Else 语句和 Select Case 语句，编写可以处理所有可能性的脚本。

- 使用不同的 VBScript 函数之前，始终要检查参数类型，如 IsArray、IsDate、IsNull、IsEmpty、IsNumeric 和 IsObject。

- 不要假定对象的默认属性属于特定类型；类型可能随对象而不同。

- 使用 VBScript 内置的转换函数可以实现一定程度的类型安全。

- 使用对象时，请调用 IsNull 和 IsEmpty 函数，来检查确认收到的值既不是 Null 也不为 Empty。

示例: 为以下示例目的，假定字段值如下表中所示声明。

字段值 | 类型
--- | ---
`Bug_Fields[“BG_BUG_ID”].Value` | 整数
`Bug_Fields[“BG_SUMMARY”].Value` | 字符串
`Bug_Fields[“BG_SUBJECT”].Value` | 实现 ISysTreeNode 接口的对象

以下示例中，语句用法是正确的。整数已转换为字符串。

    If Bug_Fields["BG_BUG_ID"].Value = "10" Then...

以下示例中，语句用法是正确的。字符串可比较。

    If Bug_Fields["BG_SUMMARY"].Value = "some text" Then...

以下示例中，语句用法是错误的。仅当 `BG_SUBJECT` 字段的值既不是 Empty 也不是 Null 时，此代码才能起作用。VBScript 还假定此对象的默认值（即默认属性）是字符串类型或与字符串类型可比较，但实际情况并非总是如此。

    If Bug_Fields["BG_SUBJECT"].Value = "My Tests" Then...

https://admhelp.microfocus.com ALM 8942
改进搜索结果的提示... ALM 帮助中心 ALM 帮助中心 ALM 帮助 17.0 全部查看本地帮助中心查看联机帮助中心后退在浏览器历史记录中后退前进在浏览器历史记录中前进删除突出显示的搜索项下一个主题转到下一个主题上一个主题转到上一个主题打印当前主题版本: