VisualBasic变量、常数和数据类型及过程概述四

城南1925

城南1925

2016-02-19 13:33

图老师小编精心整理的VisualBasic变量、常数和数据类型及过程概述四希望大家喜欢,觉得好的亲们记得收藏起来哦!您的支持就是小编更新的动力~

  Variant变量中存储的Objects
  可以将Objects存储在Variant变量中。当需要高效地处理包括Objects在内的各种数据类型时,这可能十分有用。例如,一个数组中的所有元素都必须具有相同的数据类型。将数组的数据类型设置成Variant就可将Objects连同其它数据类型一起存入同一个数组中。
  
  数组
  如果有过用其它语言编程的经历,那么想必会熟悉数组的概念。由于有了数组,可以用相同名字引用一系列变量,并用数字(索引)来识别它们。在许多场合,使用数组可以缩短和简化程序,因为可以利用索引值设计一个循环,高效处理多种情况。数组有上界和下界,数组的元素在上下界内是连续的。因为VisualBasic对每一个索引值都分配空间,所以不要不切实际声明一个太大的数组。
  注意这一部分讨论的数组是程序中声明的变量数组。它们不同于控件数组,控件数组是在设计时通过设置控件的Index属性规定的。变量数组总是连续的;与控件数组不同的是,不能从一个数组的中部加载或卸载数组元素。
  一个数组中的所有元素具有相同的数据类型。当然,当数据类型为Variant时,各个元素能够包含不同种类的数据(对象、字符串、数值等等)。可以声明任何基本数据类型的数组,包括用户定义的类型(请参阅第八章“再论编程”中的“创建自己的数据类型”)和对象变量(请参阅第九章“用对象编程”)。
  在VisualBasic中有两种类型的数组:固定大小的数组——它总是保持同样的大小,以及在运行时大小可以改变的动态数组。在本章后面的“动态数组”中将要详细讨论动态数组。
  
  声明固定大小的数组
  有三种方法声明固定大小的数组,用哪一种方法取决于数组应有的有效范围:
   建立公用数组,在模块的声明段用Public语句声明数组。
   建立模块级数组,在模块的声明段用Private语句声明数组。
   建立局部数组,在过程中用Private语句声明数组。
  
  设定上下界
  声明数组时,在数组名之后跟一个用括号括起来的上界。上界不得超过Long数据类型的范围(-2,147,483,648到2,147,483,647)。例如,下列数组声明可出现在模块的声明段:
  DimCounters(14)AsInteger  '15个元素。
  DimSums(20)AsDouble   '21个元素。
  为建立公用数组,直接用Public取代Dim。
  PublicCounters(14)AsInteger
  PublicSums(20)AsDouble
  在过程之中同样的声明使用Dim:DimCounters(14)AsIntegerDimSums(20)AsDouble第一个声明建立了一个有15个元素的数组,其索引号从0到14。第二个声明建立了一个有21个元素的数组,其索引号从0到20。缺省的下界为0。
  为了规定下界,用关键字To显式提供下界(为Long数据类型):
  DimCounters(1To15)AsInteger
  DimSums(100To120)AsString
  在前述声明中,Counters的索引值范围从1到15,而Sums的索引值范围从100到120。
  
  包含其它数组的数组
  有可能建立Variant数据类型数组,并与不同数据类型的数组共居一处。以下代码建立两个数组,一个包含整数,而另一个包含字符串。然后声明第三个Variant数组,并将整数和字符串数组放置其中:
  PrivateSubCommand1_Click()
    DimintXAsInteger   '声明计数器变量。
    '声明并放置整数数组。
    DimcountersA(5)AsInteger
    ForintX=0To4
    countersA(intX)=5
    NextintX
    '声明并放置字符串数组。
    DimcountersB(5)AsString
    ForintX=0To4
    countersB(intX)="hello"
    NextintX
    DimarrX(2)AsVariant  '声明拥有两个成员的新数组。
    arrX(1)=countersA()  '将其它数组移居到数组。
    arrX(2)=countersB()
    MsgBoxarrX(1)(2)  '显示每一个数组的成员。
    MsgBoxarrX(2)(3)
   EndSub
  
  多维数组
  有时需要追踪记录数组中的相关信息。例如,为了追踪记录计算机屏幕上的每一个像素,需要引用它的X、Y坐标。这时应该用多维数组存储值。可用VisualBasic声明多维数组。例如,下面的语句声明了一个过程内的10×10的二维数组。
  StaticMatrixA(9,9)AsDouble
  可用显式下界来声明两个维数或两个维数中的任何一个:
  StaticMatrixA(1To10,1To10)AsDouble
  可以将所有这些推广到二维以上的数组。例如:
  DimMultiD(3,1To10,1To15)
  这个声明建立了三维数组,大小为4×10×15。元素总数为三个维数的乘积,为600。
  注意在增加数组的维数时,数组所占的存储空间会大幅度增加,所以要慎用多维数组。使用Variant数组时更要格外小心,因为它们需要更大的存储空间。
  
  用循环操作数组
  可以用For循环嵌套有效的处理多维数组。例如,在MatrixA中基于每个元素在数组中的位置为其赋值:
  DimIAsInteger,JAsInteger
  StaticMatrixA(1To10,1To10)AsDouble
  ForI=1To10
     ForJ=1To10
     MatrixA(I,J)=I*10 J
     NextJ
  NextI
  详细信息关于循环的详细信息,请参阅本章后面的“循环结构”部分。
  
  动态数组
  数组到底应该有多大才合适,有时可能不得而知。所以希望能够在运行时具有改变数组大小的能力。
  动态数组就可以在任何时候改变大小。在VisualBasic中,动态数组最灵活、最方便,有助于有效管理内存。例如,可短时间使用一个大数组,然后,在不使用这个数组时,将内存空间释放给系统。
  如果不用动态数组,就要声明一个数组,它的大小尽可能达到最大,然后再抹去那些不必要的元素。但是,如果过度使用这种方法,会导致内存的操作环境变慢。
  要创建动态数组,请按照以下步骤执行:
  1.(如果希望数组为公用数组,则)用Public语句声明数组,或者(如果希望数组为模块级,则)在模块级用Dim语句声明数组,或者(如果希望数组为局部数组,则)在过程中用Static或Dim语句声明数组。给数组附以一个空维数表,这样就将数组声明为动态数组。
   DimDynArray()
  2.用ReDim语句分配实际的元素个数。
   ReDimDynArray(X 1)
  ReDim语句只能出现在过程中。与Dim语句、Static语句不同,ReDim语句是一个可执行语句,由于这一语句,应用程序在运行时执行一个操作。ReDim语句支持这样的语法,它与固定数组中使用的语法相同。对于每一维数,每个ReDim语句都能改变元素数目以及上下界。但是,数组的维数不能改变。
  ReDimDynArray(4to12)
  例如,用第一次声明在模块级所建立的动态数组Matrix1:
  DimMatrix1()AsInteger
  然后,在过程中给数组分配空间:
  SubCalcValuesNow()
  .
  .
  .
    ReDimMatrix1(19,29)
  EndSub
  这里的ReDim语句给Matrix分配一个20×30的整数矩阵(元素总大小为600)。还有一个办法,用变量设置动态数组的边界:
  ReDimMatrix1(X,Y)
  注意您可以将字符串赋值给大小可变的字节数组。一个字节数组也可以被赋值给一个可变长的字符串。一定要注意字符串中的字节数会随平台而变化。同一个字符串在Unicode平台上的字节数是它在非Unicode平台上的两倍。
  
  保留动态数组的内容
  每次执行ReDim语句时,当前存储在数组中的值都会全部丢失。VisualBasic重新将数组元素的值置为Empty(对Variant数组)、置为0(对Numeric数组)、置为零长度字符串(对String数组)或者置为Nothing(对于对象的数组)。
  在为新数据准备数组,或者要缩减数组大小以节省内存时,这样做是非常有用的。有时希望改变数组大小又不丢失数组中的数据。使用具有Preserve关键字的ReDim语句就可做到这点。例如,使用UBound函数引用上界,使数组扩大、增加一个元素,而现有元素的值并未丢失:
  ReDimPreserveDynArray(UBound(DynArray) 1)
  在用Preserve关键字时,只能改变多维数组中最后一维的上界;如果改变了其它维或最后一维的下界,那么运行时就会出错。所以可这样编程:
  ReDimPreserveMatrix(10,UBound(Matrix,2) 1)
  而不可这样编程:
  ReDimPreserveMatrix(UBound(Matrix,1) 1,10)
  详细信息关于动态数组的更详细信息,请参阅语言参考中的“ReDim函数”。关于对象数组,请参阅第九章“用对象编程”。
  

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)->

展开更多 50%)
分享

猜你喜欢

VisualBasic变量、常数和数据类型及过程概述四

编程语言 网络编程
VisualBasic变量、常数和数据类型及过程概述四

VisualBasic变量、常数和数据类型及过程概述二

编程语言 网络编程
VisualBasic变量、常数和数据类型及过程概述二

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

VisualBasic变量、常数和数据类型及过程概述六

编程语言 网络编程
VisualBasic变量、常数和数据类型及过程概述六

Visual Basic变量、常数和数据类型及过程概述四

编程语言 网络编程
Visual Basic变量、常数和数据类型及过程概述四

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

Visual Basic变量、常数和数据类型及过程概述

编程语言 网络编程
Visual Basic变量、常数和数据类型及过程概述

Visual Basic变量、常数和数据类型及过程概述六

编程语言 网络编程
Visual Basic变量、常数和数据类型及过程概述六

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

VisualBasic工具栏、对话框二

VisualBasic工具栏、对话框二

Win10如何查看蓝屏记录文件

Win10如何查看蓝屏记录文件
下拉加载更多内容 ↓