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

实例2-8 重定义数组

该实例实现步骤如下。

1 创建窗体

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

2 添加代码

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

代码2-12 RDimFrm.vb

        01. Public Class RDimFrm
        02.     Private Sub RDimFrm_Load(ByVal sender As System.Object, ByVal e As
    System.EventArgs) Handles MyBase.Load
        03.         Dim str1, str2 As String = ""
        04.         Dim i As Integer
        05.         Dim array() As Integer = {1, 2, 3} '定义一个一维三元数组并赋值
        06.         For i = 0 To 2
        07.             '将一维数组的三个元素连接成一个字符串
        08.             str1 = str1 + " " + CStr(array(i))
        09.         Next
        10.         ReDim array(5) '重新定义数组,将数组大小改为5
        11.         '给数组赋值
        12.         array(0) = 5
        13.         array(1) = 6
        14.         array(2) = 7
        15.         array(3) = 8
        16.         array(4) = 9
        17.         str = ""
        18.         '将数组各元素连接成一个字符串
        19.         For i = 0 To 4
        20.             str2 = str2 + " " + CStr(array(i))
        21.         Next
        22.         '显示前后定义的数组内容
        23.         MsgBox("原数组值:" + str1 + Chr(13) + "重新定义后的数组值:" + str2)
        24.     End Sub
        25. End Class

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

① 第5行代码声明了一个Integer数组,长度为3;

② 第6,7,8,9行代码将数据array(3)中整数转换成字符串,并将三个元素连接成一个字符串;

③ 第10行代码重新定义数组,将其元素的个数改为5个;

④ 第12,13,14,15,16行代码为重新定义的数组赋值;

⑤ 第19,20,21行代码将数组array(5)中的元素依次转换为字符串并连接到一个字符串变量上;

⑥ 第23行代码用对话框显示前后数组的内容。

3 运行结果

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

图2-13 实例2-8运行结果

使用ReDim语句的缺点是由于要重新定义数组的元素数量,因而原来数组的元素就会丢失。为了避免这种情况,可以加上Preserve关键字。这个关键字可以对ReDim语句增加限制。在多维数组的情况下,当使用Preserve关键字时,只有数组的最后一维会发生变化,重新改变大小。例如,如果对一个一维数组使用Preserve关键字,可以改变该数组的大小并且仍然保留它的内容,因为该数组只有一维;然而,如果数组有两维以上,通过使用Preserve关键字,只能改变最后一维的大小。示例如下:

        Dim Arry(10,20) As String
        ReDim Arry(15,25)
        ReDim Preserve Arry(10,25)  ''保留原来A(10,20)中的数据,增加新的数组空间

下面以实例说明Preserve关键字的作用。