vb.net结构体中的数组定义问题

时间:2021-07-19 13:40:04
我定义了一个结构体如下:
Structure calculate
        
        Dim shaftname As String 
        Dim shaftlength As Single 
        Dim shaftoutdiam As Single 
        Dim shaftindiam As Single 
         Dim shaftouter(,) As Single
End Structure
其中用红色字体标出来的是我想要定义的一个数组,这个数组是一个二维的,数组两个维度的大小是在后续计算中获得的。比如,知道了这个数组大小为3*5的。
原来在结构体中定义时是只定义了二维的,那么接下来我如何把这个数组的大小赋给这个数组?

补充说明:因为这个数组的大小是由一个表格的值决定的,我的主要目标是把表格中的数存储在这个数组里,存储的方法是遍历复制,存储复制的代码如下:
        For i = 0 To 2
            For j = 0 To DataGridView.ColumnCount - 1
                calculate.shaftouter(i, j) = DataGridView.Rows(i).Cells(j).Value
            Next
        Next
我在这样赋值时出错说是数组的大小没有定义。因此才问上述问题中如何将数组的尺寸赋予之前在结构体中建立的数组。

5 个解决方案

#1


Dim c As New calculate
ReDim c.shaftouter(3, 4)

#2


引用 1 楼 wuyazhe 的回复:
Dim c As New calculate
ReDim c.shaftouter(3, 4)

我试了一下是可以的,麻烦再问一下这个为什么还要redim一下,因为之前没用过redim这个功能

#3


Dim = 定义
ReDim = re定义

英语大字典   Re  就是  重新的意思   例如   ReBUild


嘿嘿

#4


引用 3 楼 xiaobingking 的回复:
Dim = 定义
ReDim = re定义

英语大字典   Re  就是  重新的意思   例如   ReBUild


嘿嘿
这个重定义是会和先前的定义冲突么,这两个以谁为准?

#5


dim 为定义一个变量 
redim为重新定义这个变量,redim一般用于对数组的重新定义。重新定义后会丢失所有数据 
ReDim 语句 在过程级中声明动态数组变量并分配或重新分配存储空间。

#1


Dim c As New calculate
ReDim c.shaftouter(3, 4)

#2


引用 1 楼 wuyazhe 的回复:
Dim c As New calculate
ReDim c.shaftouter(3, 4)

我试了一下是可以的,麻烦再问一下这个为什么还要redim一下,因为之前没用过redim这个功能

#3


Dim = 定义
ReDim = re定义

英语大字典   Re  就是  重新的意思   例如   ReBUild


嘿嘿

#4


引用 3 楼 xiaobingking 的回复:
Dim = 定义
ReDim = re定义

英语大字典   Re  就是  重新的意思   例如   ReBUild


嘿嘿
这个重定义是会和先前的定义冲突么,这两个以谁为准?

#5


dim 为定义一个变量 
redim为重新定义这个变量,redim一般用于对数组的重新定义。重新定义后会丢失所有数据 
ReDim 语句 在过程级中声明动态数组变量并分配或重新分配存储空间。