注册 登录
编程论坛 VB6论坛

求教一个定义动态数组的疑问

btt6 发布于 2016-09-11 15:46, 2237 次点击
如果我已经定义了一个动态数组如a() as integer
我用redim来重新定义时可以把它转换成字符串数据类型吗,我用redim a(2)as string  时为何会报错,正确应该怎么写
3 回复
#2
风吹过b2016-09-11 19:13
你看了 redim 的说明吗?
修改数组下标,而不能改变数据类型。
一个数组一般来说类型是固定好了的,如果你需要使用过程中修改类型,请使用 VB 特有的数据类型 Variant
使用这种数据类型时,重定义大小时与不能修改数据类型,但你可以存任何类型的数据进去都可以的。
#3
xiangyue05102016-09-12 09:42
楼上正解,可以话的话,比如“6”和6,也可以在使用这个数组的时候强制转换
#4
ZHRXJR2016-09-12 14:45
ReDim 是对动态数组重新定义上标与下标,它没有重新定义数组数据类型的功能。
在声明定义数组时,可以声明数组的数据类型也可以不定义数组的数据类型,这样,系统就会认为是变体数据类型(Variant),在使用 ReDim 定义上标与下标时,也是按照 Variant 数据类型定义数组的。
但是在使用数组时,根据对数组的赋值情况,系统会转换为相应的数据类型。
特别注意即就是你使用了 Variant 数据类型,但同一个数组只能使用同一种数据类型,不能对于同一个数组使用不同的数据类型。
例如:a(0) = "你好":a(1) = "ABCD" 是合理的,都是字符数据;而:a(0) = "你好" :a(1) = True,是不合理的,一个是字符数据,一个是逻辑数据。
1