主题:[讨论]关于数组数据类型转换
天天学习
[专家分:4570] 发布于 2009-07-10 11:36:00
利用array()函数可以很方便的给一个数组赋值,但是,仅限于variant类型数组。
如果想用array()给一个Integer类型的数组赋值,会提示类型不匹配
如:
dim xLables() as Integer
xLables=Array(0,10,50,100) '提示类型不匹配
要是有类似于C里的强制类型转换就好了
就像这样:
xLables=(int[])array(0,10,50,100)
相当于改变了数组的类型,这在VB里是不允许的?![em10][em10]
回复列表 (共4个回复)
沙发
天天学习 [专家分:4570] 发布于 2009-07-10 14:24:00
算了,还是直接使用variant代替数组算了,反正在是做来给asp调用的,只有variant类型 。
板凳
我是大喊三 [专家分:3010] 发布于 2009-07-11 10:36:00
a(0)=1
a(1)=2
.
.
.
a(n)=n
上面的语句不知道VB编译程序会不会转成类似汇编a DB 1,2...n 的句式?这样的话似乎就和整体赋值没什么区别了?
3 楼
我是大喊三 [专家分:3010] 发布于 2009-07-11 16:32:00
以前还有个DATA语句也挺好的,VB取消了.
4 楼
家人 [专家分:6760] 发布于 2009-07-21 13:50:00
自己可以写一个,比如:
Private Sub Command1_Click()
Dim xLables() As Integer
xLables = CIntArray(0, 10, 50, 100)
Dim i As Integer
For i = 0 To UBound(xLables)
Debug.Print xLables(i);
Next
Debug.Print
End Sub
Private Function CIntArray(ParamArray a()) As Integer()
Dim i As Long
Dim n As Long
n = UBound(a)
ReDim tmp(n) As Integer
For i = 0 To n
tmp(i) = a(i)
Next
CIntArray = tmp
End Function
我来回复