我正在调查VB中的类型,特别是在VBA中。通常,给定一个实体有两种类型:Effective value type
,我猜,在this part of the specification中被定义为value types
; Declared Type
中定义了effective value type
。
要进行测试,我需要使用一些函数来检查类型。有this part of the specification和TypeName。我认为它们用于检查实体的TypeName
,因为DBNull
可以返回Decimal
,Nothing
和VarType
; vbNull
可以返回vbEmpty
,vbError
,vbDecimal
和effective value types
。这些类型存在于declared type
表中,但不存在于declared type
表中。
现在,我的问题是,是否有人知道如何检查/显示实体的declared type
(变量,表达式......)?
编辑1:对于变量,其declared type
只是变量声明指定的类型。我想坚持认为,VBA似乎有Operator Declared Type
表达式。例如,VarType中提到了declared type
。我认为这是指操作结果的-i
。这意味着i+5
,i>6
,declared type
等实体可以拥有{{1}}。我想知道如何显示他们声明的类型。
答案 0 :(得分:1)
如果,
Dim i as integer
i = 6/3
然后你做,TypeName(i>3)
它返回布尔,这是表达式的 Type ,它基于它所拥有的结果值的类型而不是操作数的声明类型。它符合msdn 2.2 Entities and Declared Types链接中给出的规范。
或者你在寻找可以将DType(i> 3)作为整数返回的语法/函数(例如DType,富有想象力的函数),这是操作数的(i)类型?或者更确切地说,当您在某个表达式中包含多个变量时,它会更有用,因此您可以一次性找到所有类型的变量? e.g。一些字符串,在一个表达中组合了各种不同的TYPE变量。
只是尝试了解何时以及如何对您有用以及您正在寻找的最终结果。似乎这更像是对lanague的根定义。
PS:我没有代表点评论。所以我添加了一个答案。