回 帖 发 新 帖 刷新版面

主题:[讨论]关于数组数据类型转换

利用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个回复)

沙发

算了,还是直接使用variant代替数组算了,反正在是做来给asp调用的,只有variant类型 。

板凳

a(0)=1
a(1)=2
.
.
.
a(n)=n

上面的语句不知道VB编译程序会不会转成类似汇编a DB 1,2...n 的句式?这样的话似乎就和整体赋值没什么区别了?

3 楼

以前还有个DATA语句也挺好的,VB取消了.

4 楼

自己可以写一个,比如:
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

我来回复

您尚未登录,请登录后再回复。点此登录或注册