我正在研究VB中的类型,尤其是在VBA中。通常,给定实体有两种类型:我猜Effective value type
在规范的这一部分中定义为value types
;Declared Type
在规范的这一部分中定义。
要进行测试,我需要使用一些功能来检查类型。有类型和vartype。我认为它们用于检查实体的effective value type
,因为TypeName
可以返回DBNull
,Decimal
和Nothing
;VarType
可以返回vbNull
,vbEmpty
,vbError
和vbDecimal
。这些类型存在于effective value types
的表中,但在declared type
的表中不存在。
所以,现在,我的问题是,有人知道如何检查/显示实体的declared type
(变量,表达...)?
编辑1:可能对于变量,其declared type
只是该变量声明所指定的类型。我想坚持认为,VBA似乎具有declared type
的表达方式。例如,此链接中提到了Operator Declared Type
。我认为这是指操作结果的declared type
。这意味着诸如-i
,i+5
,i>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:我没有代表点要发表评论。所以我添加了一个答案。