vb变量、常数和数据类型及过程概述(十一)

提供可选参数的缺省值

也可以给可选参数指定缺省值。在下例中,如果未将可选参数传递到函数过程,则返回一个缺省值。
Sub ListText(x As String, Optional y As _
Integer = 12345)
List1.AddItem x
List1.AddItem y
End Sub

Private Sub Command1_Click ()
strName = "yourname" '未提供第二个参数。
Call ListText (strName) '添加“yourname”和“12345”。
End Sub
使用不定数量的参数一般说来,过程调用中的参数个数应等于过程说明的参数个数。可用ParamArray 关键字指明,过程将接受任意个数的参数。于是可以这样来编写计算总和的 Sum 函数:
Dim x As Integer
Dim y As Integer
Dim intSum As Integer

Sub Sum (ParamArray intNums ())
For Each x In intNums
y = y + x
Next x
intSum = y
End Sub

Private Sub Command1_Click ()
Sum 1, 3, 5, 7, 8
List1.AddItem intSum
End Sub

用命名的参数创建简单语句
对许多内建函数、语句和方法,Visual Basic 提供了命名参数方法来快捷传递参数值。对命名参数,通过给命名参数赋值,就可按任意次序提供任意多参数。为此,键入命名参数,其后为冒号、等号和值 (MyArgument :="SomeValue") ,可以按任意次序安排这些赋值,它们之间用逗号分开。注意,下例中的参数顺序和所要参数的顺序相反:
Function ListText (strName As String, Optional strAddress As String)
List1.AddItem strName
List2.AddItem strAddress
End Sub

Private Sub Command1_Click ()
ListText strAddress:="12345", strName:="Your Name"
End Sub
如果过程有若干不必总要指定的可选参数,则上述内容更为有用。

确定对命名参数的支持
要确定哪一个函数、语句和方法支持命名参数,用“代码”窗口中的“AutoQuickInfo”功能,检查“对象浏览器”,或者参阅语言参考。使用命名参数时要注意以下几点:
在 Visual Basic (VB) 对象库中的对象的方法不支持命名参数。而 VisualBasic for applications (VBA) 对象库中的所有的语言关键字都支持命名的参数。
在语法中,命名参数是用粗体和斜体字表示的。所有其它参数只用斜体字表示。
重点 使用命名参数时不能省略所需参数的输入。可以只省略可选参数。对于 Visual Basic (VB) 和 Visual Basic for applications (VBA) 对象库,“对象浏览器”对话框将可选参数用方括号 [ ] 括起来。
详细信息 请参阅语言参考中的 "ByVal"、"ByRef"、"Optional" 和"ParamArray"。

控制结构概述
有了控制结构就可控制程序执行的流程。如果未复选控制流语句,程序便从左至右、自顶向下地贯穿这些语句。有些简单程序可以只用单向流程来编写,有些流程可以依靠运算符的优先级来控制,但任何编程语言的效力和用途皆由其通过结构和循环改变语句顺序的能力而得。

判定结构
Visual Basic 过程能够测试条件式,然后根据测试结果执行不同的操作。
Visual Basic 支持的判定结构有:
1.If...Then
2.If...Then...Else
3.Select Case
If...Then
用 If...Then 结构有条件地执行一个或多个语句。单行语法和多行块语法都可以使用:
If condition Then statement
If condition Then
statements
End If
condition 通常是比较式,但它可以是任何计算数值的表达式。Visual Basic 将这个值解释为 True 或 False:一个为零的数值为 False,而任何非零数值都被看作 True。若 condition 为 True,则 Visual Basic 执行 Then 关键字后面的所有 statements。可以使用单行或多行语法有条件地执行一个语句(下面两个例子等价):
If anyDate < Now Then anyDate = Now

If anyDate < Now Then
anyDate = Now
End If
注意:If...Then 的单行格式不用 End If 语句。如果 condition 为 True 时要执行多行代码,则必须使用多行块 If...Then...End If 语法。
If anyDate < Now Then
anyDate = Now
Timer1.Enabled = False '定时器控制失效。
End If

时间: 2024-10-31 11:02:39

vb变量、常数和数据类型及过程概述(十一)的相关文章

vb变量、常数和数据类型及过程概述(三)

常数 经常会发现代码包含一些常数值,它们一次又一次地反复出现.还可发现,代码要用到很难记住的数字,而那些数字没有明确意义.在这些情况下,可用常数大幅度地改进代码的可读性和可维护性.常数是有意义的名字,取代永远不变的数值或字符串.尽管常数有点像变量,但不能像对变量那样修改常数,也不能对常数赋以新值.常数有两种来源:1.内部的或系统定义的常数是应用程序和控件提供的.在"对象浏览器"中的 Visual Basic ( VB ) .和 Visual Basic for applications

vb变量、常数和数据类型及过程概述(九)

过程概述 将程序分割成较小的逻辑部件就可以简化程序设计任务.称这些部件为过程,它们可以变成增强和扩展 Visual Basic 的构件. 过程可用于压缩重复任务或共享任务,例如,压缩频繁的计算.文本与控件操作和数据库操作.用过程编程有两大好处:1.过程可使程序划分成离散的逻辑单元,每个单元都比无过程的整个程序容易调试.2.一个程序中的过程,往往不必修改或只需稍作改动,便可以成为另一个程序的构件.在 Visual Basic 中使用下列几种过程:Sub 过程不返回值.Function 过程返回值.

vb变量、常数和数据类型及过程概述(一)

在Visual Basic环境下进行计算时,常常需要临时存储数据.例如,可能想要计算几个值,将它们进行比较,并根据比较的结果对它们进行不同的操作.如果想要比较这些值,就要存储它们,但不必把它们存入属性.像大多数编程语言那样,Visual Basic 使用变量来存储值.变量具有名字(用来引用该变量所含的值的名词)和数据类型(确定变量可以存储的数据的种类).数组可以用来存储建立了索引的相关变量集. 常数也存储数值,顾名思义,在整个应用程序执行过程中,这些值都保持不变.常数的使用增加了代码的可读性,因

vb变量、常数和数据类型及过程概述(十)

标准模块中的过程如果过程名是唯一的,则不必在调用时加模块名.无论是在模块内,还是在模块外调用,结果总会引用这个唯一过程.如果过程仅出现在一个地方,这个过程就是唯一的.如果两个以上的模块都包含同名的过程,那就有必要用模块名来限定了.在同一模块内调用一个公共过程就会运行该模块内的过程.例如,对于Module1 和 Module2 中名为 CommonName 的过程,从 Module2 中调用CommonName 则运行 Module2 中的CommonName过程,而不是 Module1中的 Co

vb变量、常数和数据类型及过程概述(四)

Numeric 数据类型Visual Basic 支持几种 Numeric 数据类型:Integer(整型).Long(长整型).Single(单精度浮点型).Double(双精度浮点型)和 Currency(货币型).与 Variant 类型相比,Numeric 类型占用的存储空间通常要少.如果知道变量总是存放整数(如 12 )而不是带小数点的数字(如 3.57),就应当将它声明为 Integer 类型或 Long 类型.整数的运算速度较快,而且比其它数据类型占据的内存要少.在 For...N

vb变量、常数和数据类型及过程概述(二)

模块内部使用的变量按照缺省规定,模块级变量对该模块的所有过程都可用,但对其它模块的代码不可用.可在模块顶部的声明段用 Private 关键字声明模块级变量,从而建立模块级变量.例如:Private intTemp As Integer在模块级,Private 和 Dim 之间没有什么区别,但 Private 更好些,因为很容易把它和 Public 区别开来,使代码更容易理解. 所有模块使用的变量为了使模块级的变量在其它模块中也有效,用 Public 关键字声明变量.公用变量中的值可用于应用程序的

vb变量、常数和数据类型及过程概述(七)

Variant 变量中存储的 Objects可以将 Objects 存储在 Variant 变量中.当需要高效地处理包括 Objects 在内的各种数据类型时,这可能十分有用.例如,一个数组中的所有元素都必须具有相同的数据类型.将数组的数据类型设置成 Variant 就可将Objects 连同其它数据类型一起存入同一个数组中. 数组如果有过用其它语言编程的经历,那么想必会熟悉数组的概念.由于有了数组,可以用相同名字引用一系列变量,并用数字(索引)来识别它们.在许多场合,使用数组可以缩短和简化程序

vb变量、常数和数据类型及过程概述(五)

Object 数据类型Object 变量作为 32 位(4 个字节)地址来存储,该地址可引用应用程序中或某些其它应用程序中的对象.可以随后(用 Set 语句)指定一个被声明为 Object 的变量去引用应用程序所识别的任何实际对象.Dim objDb As ObjectSet objDb = OpenDatabase ("c:\Vb5\Biblio.mdb")在声明对象变量时,请试用特定的类,而不用一般的 Object(例如用 TextBox而不用 Control,或者像上面的例子那样

vb变量、常数和数据类型及过程概述(八)

用循环操作数组可以用 For 循环嵌套有效的处理多维数组.例如,在 MatrixA 中基于每个元素在数组中的位置为其赋值:Dim I As Integer, J As IntegerStatic MatrixA(1 To 10, 1 To 10) As DoubleFor I = 1 To 10For J = 1 To 10MatrixA (I, J) = I * 10 + JNext JNext I详细信息 关于循环的详细信息,请参阅本章后面的"循环结构"部分. 动态数组数组到底应该