我们都知道在所有程序设计语言中数组都是一个非常重要的概念,数组的作用是允许程序员用同一个名称来引用多个变量,因此采用数组索引来区分这些变量。很多情况下利用数组索引来设置一个循环,这样就可以高效地处理复杂的情况,因此在很多情况下,使用数组可以缩短或者简化程序的代码。本文主要介绍VB.NET数组的使用,希望对大家的使用带来帮助。
我们把VB.NET数组当作一个对象来处理,这就意味着数组类型是单个引用类型,数组变量包含指向构成数组元素、数组维和数组长度等数据的指针,数组之间互相赋值其实只是在相互复制指针,而且数组继承了System名字空间的Array类。 VB.NET中提供的数组类型和VB 6.0中有一些差别,我们将在下面做详细的讲解。 (1)VB.NET数组的声明 VB.NET中的数组有两种类型:定长数组和动态数组。这里先介绍定长数组的几种不同的声明方式,不同的声明方法将导致数组不同的有效范围。 ◆Dim语句在模块段建立模块级数组,例如:
◆Public语句在模块的声明部分建立一个公共数组,例如:
◆Static语句声明一个过程内的局部数组,例如:
VB.NET还提供了新的数组初始化语法,只需要简单的语句就可以完成数组的声明和初始化,例如:
在VB.NET中,为了和其他语言更加易于协同操作,数组的下标均设定为0,不允许声明一个下界为1的数组,因此Option Base语句不再被VB.NET支持,而且在声明一个数组时必须用它的元素个数,而不是它的上界来初始化,例如:
以上声明的数组有三个元素,下标从0到2,如果代码企图访问下标为3的数组元素,将引起运行错误。 (2)二维数组及多维数组 除了较为简单的一维数组外,VB.NET还支持多维数组,其声明方法和一维数组没有太大的区别,例如:
以上语句声明了一个lO行,10列的二维数组。在VB.NET中,数组最多有32维,而且每一维的长度都不能够超过Long数组类型的最大值。数组总尺寸的限制是不一样的,这与所采用的操作系统以及计算机中使用的内存量有关。数组的维数将保留在System.Array.Rank属性中,每维的长度可以由System.Array.GetLengfll方法来得到。需要提醒注意的是,由于VB.NET中数组是以0为基的,如果返回来的值为9,则表示数组是10维的。当为数组继续添加维数的时候,使其扩展为多位数组,此时会使数组所需的存储空间大幅度增加,所以在使用多维数组时对这个方面也要多加考虑。 另外VB.NET还提供了Lbound()和Lbound()两个函数来返回数组的上、下界。中国自学编程网整理发布 ,www.zxbc.cn对于一维数组而言,只需要一个参数,那便是数组名。例如:
对于多位数组,也只是简单地将逗号后面的第二个参数指定为数组的第几维。例如:
如果没有指明是哪一维,系统默认为第一维。 (3)动态数组 有时在程序运行之前无法确认数组的大小,VB.NET提供了在程序运行时动态决定数组大小的功能,即动态数组。它具有灵活多变的特点,可以在任何时候根据需要随时改变数组的大小,有助于内存的管理。建立一个动态数组的详细步骤如下: ①和声明一般数组一样,可以使用前面介绍的几种声明,只是赋一个空维数组,这样就将数组声明为动态数组。典型的声明语句为:
②然后使用ReDim语句来配置数组大小。ReDim语句声明只能在过程当中使用,它是可执行语句,可以改变数组中元素的个数,但是却不可以改变数组的维数,就是说不能把一维变为二维。在ReDim语句配置数组元素个数时,数组中的内容将全部置为0。典型语句为:
③如果想改变数组大小又不想丢失原来的数据,只要在ReDim语句中包含Preserve关键字就可以,典型语句为:
对于多维数组,在使用Preserve关键字时,只能修改最后一维的大小。如果改变其他维,那么将出现运行错误。如果不清楚某维的当前大小,可以使用GetI~ength函数来获取。 (4)VB.NET数组的使用 在’VB 6.0中,可以用For Each来循环遍历一个数组。例如:
在VB.NET中可以使用For循环和数组长度来遍历一个数组。例如:
在使用数组时还要注意,不仅声明语法有变化,而且在运行时处理方式也有了很大的变化。VB.NET在堆栈中给数组分配地址空间,当向一个方法传递数组类型的参数时,使用的是引用传递而不是值传递。下面是互相传递数组引用的三个方法:
方法一在两个方向同时传递了数组引用,一般用来向调用者返回数组引用。方法二和方法三从调用者向方法的实现中传递了数组引用。方法二的参数被声明为一维数组,而在方法三中参数被声明成了-维数组。 (5)数组的高级特性 ①数组的数组 在O~ect数组中还可以组装不同类型的数组。例如,以下代码中先建立两个数组,一个是Integer类型,另一个是String类型,然后再声明一个O~ect类型的数组,把前两个数组分装在其中。
上述代码中使用了student(0)和student(1)的后绑定。注意,只有在Option s~ict被关闭时,VB.NET编译器才允许使用后绑定。 ②数组和集合 虽然集合通常用于操作对象,但是它也能操作数据类型。在某些条件下,其效率比数组还要高。我们可以通过以下4个方面来进行比较。 ◆集合可以根据需要进行扩充,不像数组那样需预先规定大小。 ◆数组只能保存声明时所定义的数据类型,但是同一个集合中可以存储不同类型的数据。 ◆集合元素的修改较为麻烦,不像数组那么方便。 ◆处理集合的速度较数组慢,但是在处理较小的动态条目集,使用集合是最为理想的选择。 |
经常关注我们51CTO的编程爱好者们应该会通过我们为大家推出的VB.NET专题报告,对这一语言有一个深入的了解,从而帮助我们方便的学习这一语言。今天,我们将会在这里为大家详细介绍VB.NET创建数组的相关方法,以增加大家的经验。 数组是一个对象,所以您可以使用 New (Visual Basic) 子句来创建它,并将它赋给数组变量。这可以作为数组声明的一部分,或包含在后续赋值语句中。 在数组声明语句中的VB.NET创建数组 在声明中,在变量名称及其圆括号后面添加 New 子句。下面的示例声明了一个变量,它存储元素为 Date 数据类型 (Visual Basic) 的数组,然后创建该数组,并将该数组赋给变量。
执行此语句后,变量 validDates 中的数组长度为 0。 注意 New 子句必须指定类型名称,其后跟圆括号、再跟大括号 {}。圆括号不表示对数组构造函数的调用,而是表示对象类型为数组类型。大括号提供初始化值。编译器需要大括号,即使您没有为其提供任何值。因此,New 因此,子句必须包括圆括号和大括号,即使它们为空。 在单独的赋值语句中的VB.NET创建数组 使用带有 New 子句的后续赋值语句。下面的示例声明了一个变量,它存储元素为 Integer 数据类型 (Visual Basic) 的数组,然后创建该数组,并将该数组赋给其他语句中的变量。
执行这些语句后,变量 scores 中的数组长度为 0。 - 或 - 使用 ReDim 语句 (Visual Basic) 不仅创建数组,而且初始化数组长度。
执行此语句后,变量 scores 中的数组长度为 5,所有元素均存储默认值。 以上就是我们为大家介绍的VB.NET创建数组的相关方法。 |
|( 京ICP备09078825号 )
GMT+8, 2024-11-23 21:48 , Processed in 0.122552 second(s), 42 queries .