0

我正在研究 VB 中的类型,尤其是 VBA 中的类型。通常,给定一个实体有两种类型:Effective value type我猜,在规范value types这一部分中定义在规范的这一部分中Declared Type定义。

要进行测试,我需要使用一些函数来检查类型。有TypeNameVarType。我认为它们用于检查effective value type实体,因为TypeName可以返回DBNull,DecimalNothing; 可以VarType返回vbNull,vbEmptyvbError. vbDecimal这些类型存在于 的表中effective value types,但不存在于 的表中declared type

所以现在,我的问题是,有谁知道如何检查/显示declared type一个实体(变量、表达式......)?

编辑1:可能对于一个变量,它declared type只是变量声明指定的类型。我想坚持一点,VBA 似乎有declared type表达式。例如,在此链接Operator Declared Type中提到。我认为那是指操作的结果。这意味着像, , ... 这样的实体可以有一个. 我想知道如何显示他们声明的类型。declared type-ii+5i>6declared type

4

1 回答 1

1

如果,

Dim i as integer
i = 6/3

然后你这样做, TypeName(i>3) 它返回布尔值,它是表达式的类型,基于它所持有的结果值的类型,而不是操作数的声明类型。它符合msdn 2.2 Entities and Declared Types链接中给出的规范。

或者您是否正在寻找可以将 DType(i>3) 作为操作数 (i) 类型的整数返回的语法/函数(例如 DType、富有想象力的函数)?或者更确切地说,当您在某个表达式中有多个变量时,它会更有用,这样您就可以一次找到它们的所有类型? 例如,一些字符串在一个表达式中组合了各种不同的类型变量。

只是想了解它何时以及如何对您有用,以及您正在寻找的最终结果是什么。似乎这更像是语言根定义。

PS:我没有代表点评论。所以我添加了一个答案。

于 2012-11-07T08:00:54.053 回答