上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关键字的作用。