Visual Basic.NET+SQL Server全程指南
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

实例2-7 二维数组的使用

该实例实现步骤如下。

1 创建窗体

在本章的项目chapter2中,右键单击解决方案资源管理器中项目名下对应节文件夹“数组”,在弹出菜单中选择“添加”→“Windows窗体”菜单命令,在弹出的对话框中输入窗体名DArrayFrm,单击“添加”按钮完成窗体的创建。

2 添加代码

在窗体类中添加代码2-11中的代码。

代码2-11 DArrayFrm.vb

        01. Public Class DArrayFrm
        02.     Private Function GetArray(ByVal OriginArray(,) As Double, ByVal Line
    As Integer) As Double()
        03.         '获得带二维数组的一维上限值
        04.         Dim ub As Integer = OriginArray.GetUpperBound(1)
        05.         '定义一个一维数组,上限值为该二维数组的一维上限值
        06.         Dim ta(ub) As Double
        07.         Dim i As Integer
        08.         For i = 0 To ub -1
        09.             'Line为二维数组的行下标,依次将Line行对应的值赋给一维数组ta
        10.             ta(i) = OriginArray(Line, i)
        11.         Next
        12.         Return ta
        13.     End Function
        14.     Private Sub DArrayFrm_Load(ByVal sender As System.Object, ByVal e As
    System.EventArgs) Handles MyBase.Load
        15.         Dim a(3, 4) As Double ' 定义二维数组
        16.         Dim i, j As Integer
        17.         For i = 0 To 2
        18.             For j = 0 To 3
        19.                 a(i, j) = i * 10 + j '按行依次为数组中的每一个元素赋值
        20.             Next
        21.         Next
        22.         Dim str As String = ""
        23.         For i = 0 To 3
        24.             '获得第三行的4个数据,将它们连接成一个字符串
        25.             str += " " & GetArray(a, 2)(i)
        26.     Next
        27.     MsgBox(str) '显示第三行的所有数据
        28.     End Sub
        29. End Class

代码2-11的执行步骤如下:

① 第2行代码定义了一个GetArray ()函数,用于获得二维数组中某一行的所有数据;

② 第4行代码获得相应二维数组的一维上限值;

③ 第6行代码定义了一个一维数组;

④ 第8,9,10,11行代码依次扫描第Line+1行的相应值,并将其赋给上面定义的一维数组;

⑤ 第12行代码返回一维数组的值;

⑥ 第15行代码定义了一个二维数组a(3,4),三行四列,长度为12;

⑦ 第16,17,18,19,20,21行代码按行乘10再加列值来为二维数组各元素赋值,所得该二维数组值如下:

0,1,2,3

10,11,12,13

20,21,22,23

3 运行结果

按F5键,运行程序,弹出如图2-12所示对话框。

图2-12 实例2-7运行结果

2.2.2 动态数组

动态数组在声明前不确定大小的数组时使用,一个动态数组的大小可以在程序执行期间改变。在数组声明的时候使用Dim关键字声明不指定大小的数组,以后用ReDim语句定义数组大小。使用ReDim语句可以改变数组中元素的数量,但不能改变数组的维数。示例如下:

        Dim A() As Integer
        ReDim A(5)

使用动态数组需要注意如下几点。

(1)ReDim语句只能出现在过程中,而不能出现在程序的声明部分,该语句是可执行语句。

(2)使用ReDim语句可以反复改变数组元素。

(3)使用ReDim语句则原来数组的数据都将丢失。

(4)ReDim语句不改变数组的数据类型或不为数组元素初始化新数值。新的元素用它们数据类型的默认值初始化。

下面用实例说明如何重定义数组。