检查/显示实体的声明类型(变量,表达式..)



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

要进行测试,我需要使用一些功能来检查类型。有类型和vartype。我认为它们用于检查实体的effective value type,因为TypeName可以返回DBNullDecimalNothingVarType可以返回vbNullvbEmptyvbErrorvbDecimal。这些类型存在于effective value types的表中,但在declared type的表中不存在。

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

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

如果,

Dim i as integer
i = 6/3

然后您做,TypeName(i>3)它返回 boolean ,它是基于其保留的结果值的类型 type 而不是操作数的声明类型。它符合MSDN 2.2实体和声明类型的链接中给出的规范。

否则您是否正在寻找可以返回dtype(i> 3)的语法/函数(例如dtype,想象中的函数)作为整数,哪个是操作数(i)类型?或者更确切地说,当您在某些表达式中具有多个变量时,它更有用,因此您可以一次找到它们的所有类型?例如。将各种类型变量组合在一个Expressoin中的某些字符串。

只是尝试了解何时以及如何对您有用,以及您要寻找的最终结果。.似乎更适合lanague root root定义。

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

最新更新