热情软件屋

 

“数组赋值”和“从函数返回数组”如何使用


编号:QA001859
建立日期: 1999年10月14日 最后修改日期:1999年10月14日
所属类别:

Lily_China1:
    有关VB 6.0的数组新功能,如“数组赋值”和“从函数返回数组”具体如何使用。
    Dim k(2) As Variant
    Private Sub Form_Load()
     Dim c(3)
     k(0) = 2
     Print k(1),
     For i = 1 To 3
     c(i) = i
     Next i
     k(1) = c
     For i = 2 To 4
     c(i - 1) = i
     Next i
     k(2) = c
    End Sub
    这样的情况可以成功,数组元素k(0)=2,而k(1)和k(2)却分别是数组。这种存储机制是如何的?系统如何管理这样的数组。
    而下面的示例却不行:
    Public lTrance As Integer
    Public Type 均方误差
     误差(1 To 6, 1 To 6) As Single
    End Type
    Public VsFE(2 To CalNum) As 均方误差
    在代码中有这样一句
    VsFE(lTrance + 1).误差() = Next预测误差(lTrance)
    其中“Next预测误差()”是自定义的一个函数,返回一个(1 To 6, 1 To 6)数组(即一个6*6的矩阵)
    究竟应该怎样使用这项新技术?

回答:

    Variant类型是一个比较特殊的类型,实际VB实现它的时候使用了C语言的union类型,而VB中没有union类型,所以你觉得奇怪。Variant类型可以存放任何类型的数据。如果是Variant类型的数组,则每个元素都是Variant类型的。你将数组k的三个元素设置为不同的数据类型,VB都将它们转换为Variant类型然后保存起来,所以数组的每个元素仍然是Variant类型的,只是它们保存的数据不同吧了。
    至于函数返回数组,接收返回值的变量必须Variant类型。如:
    Dim v As Variant
    v= Next预测误差(lTrance)
    Print v(0)
    这里v只是一个Variant变量,而不是数组,但由于你将一个数组赋给它,所以你也可以使用v()的形式访问它,这是VB的一个特殊之处。

此问题由李海回答。

 
把这个问题推荐给朋友
   
   
您的意见类别
您的名字
您的电子邮件
您的建议(请尽可能详细)
 
 

版权所有 1997-2008 热情软件屋
如果您有任何建议和意见, 请给我发个电子邮件 askpro@china-askpro.com
Web Designed by ZebraStudio