就是说,比如有个语句 TypeName XXX as VVV
意思就是把XXX当成已知类型VVV来处理。
可以有:
TypeName MyInt as Integer
dim a as MyInt
dim b(6) as MyInt
等同于
dim a as Integer
dim b(6) as Integerc里面好像有这样东西。不知道vb有没有呢?我这里要用在类上面
ps:如果有这样的也行: 就是定义c类型时,a是啥类型c就是啥。 好比dim c as TypeOf(a)。我知道错的。不过可以达到这个目的吗?
谢谢~~
意思就是把XXX当成已知类型VVV来处理。
可以有:
TypeName MyInt as Integer
dim a as MyInt
dim b(6) as MyInt
等同于
dim a as Integer
dim b(6) as Integerc里面好像有这样东西。不知道vb有没有呢?我这里要用在类上面
ps:如果有这样的也行: 就是定义c类型时,a是啥类型c就是啥。 好比dim c as TypeOf(a)。我知道错的。不过可以达到这个目的吗?
谢谢~~
解决方案 »
- VB 文件操作
- vb打印的问题
- 一个关于richtextbox打印的问题(搞定后再送100分)
- 送分100分:如何在数据表中根据多个字段提取不重复的记录
- 头部为字符,结尾为整型数值的字符串,先头部后结尾的进行排序
- vb安装的问题,在"安装程序正在搜索已安装的组件"停止
- VB如何将DBgrid印出来,假如用DBgrid显示的列表有很多字段,但我只需要前四个字段,应怎样实现。
- 请教高手?如何像MessageBox函数一样追踪到InputBox函数的按钮?
- 用GetBitmapDimensionEx如何得到一个位图的大小?
- 菜乌问题~~~关于vb下载控件的几个问题
- 用ADO连接ACCESS和SQL2000中的表
- 数据库软件,为防止用户随意更改系统日期,有啥方案? 一般用哪种最好?
Dim a As Integer
Dim b As String
a = 100
b = "test"
Dim c As Variant
Debug.Print TypeName(c), "c=" & c
c = a
Debug.Print TypeName(c), "c*20=" & c * 20
c = b
Debug.Print TypeName(c), "c=" & c
输出:Empty c=
Integer c*20=2000
String c=test
-1.797693134862315E308 到 -4.94066E-324,正数时则从 4.94066E-324 到 1.797693134862315E308。通常,数值 Variant 数据保持为其 Variant 中原来的数据类型。例如,如果把一个 Integer赋值给 Variant,则接下来的运算会把此 Variant 当成 Integer 来处理。然而,如果算术运数针对含 Byte、Integer、Long 或 Single 之一的Variant 执行,并当结果超过原来数据类型的正常范围时,则在 Variant 中的结果会提升到较大的数据类型。如 Byte 则提升到 Integer,Integer 则提升到 Long,而 Long和Single 则提升为 Double。当 Variant 变量中有 Currency、Decimal 及 Double 值超过它们各自的范围时,会发生错误。可以用 Variant 数据类型来替换任何数据类型,这样会更有适应性。如果 Variant 变量的内容是数字,它可以用字符串来表示数字或是用它实际的值来表示,这将由上下文来决定,例如:Dim MyVar As Variant
MyVar = 98052在前面的例子中,MyVar 内有一实际值为 98052 的数值。像期望的那样,算术运算子可以对 Variant 变量运算,其中包含数值或能被解释为数值的字符串数据。如果用 + 运算子来将 MyVar 与其他含有数字的 Variant 或数值类型的变量相加,结果便是一算术和。Empty 值用来标记尚未初始化(给定初始值)的 Variant 变量。内含 Empty 的 Variant 在数值的上下文中表示 0,如果是用在字符串的上下文中则表示零长度的字符串 ("")。不应将 Empty 与 Null 弄混。Null 是表示 Variant 变量确实含有一个无效数据。在 Variant 中,Error 是用来指示在过程中出现错误时的特殊值。然而,不像对其他种类的错误那样,程序并不产生普通的应用程序级的错误处理。这可以让程序员,或应用程序本身,根据此错误值采取另外的行动。可以用 CVErr 函数将实数转换为错误值来产生 Error 值。
但是我上面只是举了个小例子。实际中不是简单的integer类型了。而是as 类 去了。
variant虽然好像也可以。但是variant太多了一个浪费,二个危险,三个不规范。
所以我还是尽力避免使用variant把,实在没法再呵呵谢谢chewinggum
再给你举个小例子:Dim a As Object
Set a = New ADODB.Recordset
Debug.Print TypeName(a)
Set a = Nothing
Set a = New ADODB.Connection
Debug.Print TypeName(a)
输出:
Recordset
Connection
object很不爽的. 打点后都没有成员列表选择..555真不方便啊.