浅谈VB,6.0中变量、过程的定义、调用及作用域
(呼伦贝尔学院信息科学分院,内蒙古 海拉尔 021008)
摘 要:在VB6.0这种面向对象的可视化程序设计中,深刻的理解和掌握变量的声明及作用域和过程的定义、调用及作用域极为重要,本文结合实例分别来介绍。
关键词:VB 6.0;变量;过程;作用域;调用
中图分类号:TP312 文献标识码:A 文章编号:1007—6921(2007)07—0088—02
1 变量的声明及作用域
1.1 变量的声明
变量是程序执行过程中,其值可以改变的量用来存放程序中所需的数据。它的命名规则是以字母或汉字开头,后可跟汉字、字母、数字或下划线组成,长度小于等于255个字符;不能用VB中的关键字;不区分大小写。变量的声明分为显式声明和隐式声明(变量声明也称变量定义)。
显式声明格式:Public|Private|Dim|Static 变量名 [AS 类型]或 Public|Private|Dim|Static变量名 类型符。
注:由关键字Static声明的变量为静态变量,其他方式声明的为动态变量。静态变量的值在整个程序的运行中可以一直保留,而动态变量每次调用过程时都会重新初始化。
隐式声明变量:未进行上述的声明而直接使用,其类型为 Variant 类型,赋值后由值的类型决定变量的类型。建议不使用。
注意:由于VB允许隐式变量的使用,如果同一变量拼写出错,在隐式声明中无法查出,初学者可以在通用声明处加Option Explic语句可强制显式声明变量,要求所有变量必须先声明后使用。
1.2 变量的作用域
变量的作用域是指变量的有效作用范围,即变量可以被访问的范围。
VB中变量的作用域分为:
局部变量:在过程内用声明的变量,只能在本过程中使用。
窗体/模块级变量:在“通用声明”段中用Dim语句或用Private语句声明的变量,可被本窗体/模块的任何过程访问。
全局变量:在“通用声明”段中用Public语句声明的变量,可被本应用程序的任何过程或函数访问。
变量作用域对照表如表1。
2 过程的定义、调用和作用域
VB应用程序是由过程组成的,除了系统中提供的内部函数过程和事件过程外,在应用程序的编写中,有时问题比较复杂,按照结构化程序设计的原则,可以把问题逐步细化,分成若干个功能模块,通过VB提供的自定义过程将功能模块定义成一个个过程,供事件过程多次调用。使用过程的好处是程序简练、便于调试和维护。在VB6.0中,自定义过程可分为以下几种:以Function保留字开始的为函数过程;以Sub保留字开始的为子过程;以Property保留字开始的为属性过程;以Event保留字开始的为事件过程。
下面主要介绍函数过程和子过程的定义、调用及作用域。
2.1 过程的定义
2.1.1 函数过程的定义
①利用“工具”菜单下的“添加过程”命令——选择函数,定义生成一个函数过程的框架。②利用代码窗口直接定义,一般格式:
Function 函数过程名([参数列表]) [As 类型]
局部变量或常数定义
函数过程名 = 返回值
Exit Function]
语句块
End Function
函数过程名:命名规则同变量名;参数列表形式:[ByVal]变量名[()][As 类型]称为形参,仅表示参数的个数、类型,无值;函数名 = 返回值 在函数体内至少对函数名赋值一次;[Exit Function]:表示退出函数过程。
2.1.2 子过程的定义
①利用“工具”菜单下的“添加过程”命 令——选择子程序,定义生成一个子过程的框架。②利用代码窗口直接定义,一般格式:
Sub 子过程名[(参数列表)]
局部变量或常数定义
[Exit Sub]
语句
End Sub
2.1.3 举例:进制转换,把二至十六任意进制的字符串转换成十进制整数
①用函数过程定义。
Private Function convert(ByVal s As String, ByVal r As Integer)As Long "s 表示任意进制的字符串,r表示进制
Dim n%,i%,c As String * 1,p&
n = Len(s): p = 0
For i = 1 To n
c = UCase(Mid(s, i, 1))
Select Case c
Case “0” To “9”
p = p * r + Val(c)
Case “A” To “Z”
p = p * r + Asc(c) - 55
End Select
Next i
convert = p"函数过程名中存放转换后的十进制整数
End Function
②用子过程定义。
Private Sub convert(ByVal s As String, ByVal r As Integer,D as Long)
Dim n%,i%,c As String * 1,p&
n = Len(s): p = 0
For i = 1 To n
c = UCase(Mid(s, i, 1))
Select Case c
Case “0” To “9”
p = p * r + Val(c)
Case “A” To “Z”
p = p * r + Asc(c) - 55
End Select
Next i
D = p "变量D中存放转换后的十进制整数
End Sub
2.2 过程的调用
2.2.1 函数过程的调用
格式:变量名=函数过程名([参数列表])
2.2.2 子过程的调用
①用Call语句调用子过程,格式:Call子过程名 [参数列表]
②把过程名作为一个语句来使用,格式:子过程名[参数列表]
参数列表:称为实参,形参个数相同,位置与类型一一对应可以是同类型的常量、变量、表达式。
2.2.3 举例:在窗体模块中编写命令按钮单击事件过程来分别调用进制转换的函数过程和子过程
Private Sub Command1-Click()
Dim s1 As String, r1 As Integer, d1 As Long
s1 = Text1.Text :r1 = Val(Text2)
d1 = convert(s1, r1)′函数过程的调用
Call convert(s1, r1, d1)′子过程的调用
convert s1, r1, d1′子过程的调用
Text3.Text = d1
End Sub
2.3 过程的作用域
过程随所处的位置不同,可被访问的范围,称为过程的作用域。
VB中过程的作用域分为:
窗体/模块级:加Private关键字的过程,只能被定义的窗体或模块中的过程调用。
全局级:加Public关键字(缺省)的过程,可供该应用程序的所有窗体和标准模块中的过程调用。
过程作用域对照表如下:
2.4 确定使用时应定义函数过程或子过程的一点建议
由我们上面过程的定义和调用可知,子过程和函数过程的区别是前者子过程名无值;后者函数过程名有值。若过程有一个返回值,则习惯使用函数过程;若过程无返回值或返回多个值,一般使用子过程,通过实参与形参的结合带回结果。
一般来说,一个函数过程可以被一个子过程代替,代替时只要改变函数过程定义的形式,并在子过程的形参中增加一个地址传递的形参来传递结果。但反过来。有一个函数过程去代替一个子过程,有时是不容易实现的。
[参考文献]
[1] 曾强冲,杨莉等.Visual Basic6.0 程序设计教程[M]. 北京:中国水利水电出版社,2001.
[2] 刘炳文.Visual Basic 程序设计教程[M].北京:清华大学出版社,2003.
[3] 刘瑞新,崔淼.Visual Basic程序设计教程[M].北京:机械工业出版社,2003.
热门文章:
- XX镇镇长述责述廉报告2025-01-11
- 2024年关于学习贯彻主题教育...2025-01-11
- (6篇)主要负责人述法报告(...2025-01-10
- 2024年副县长履职情况报告【...2025-01-09
- 2024年中国工会十八大报告(...2025-01-08
- 2024年(3篇)XX区人大代表履...2025-01-07
- 高校后勤巡察自查报告2024-01-08
- 2024年度某商务局个人述责述...2024-01-07
- 2024年度党费工作自查报告(...2024-01-05
- 2024年XX市关于打造全国一流...2024-01-02
相关文章:
- 浅谈煤矿安全生产评价体系构建2021-08-27
- 浅谈农村有线电视网络故障维修2021-08-27
- 浅谈医院成本核算精细化管理2021-08-27
- 浅谈生态建筑建筑设计应用2021-08-27
- 浅谈WiFi智能灯光控制系统设计2021-08-27
- 浅谈初中历史教学德育渗透2021-08-27
- 浅谈计算机教育教学创新2021-08-27
- 浅谈历史教学学生责任意识培养2021-08-27
- 浅谈临床医学检验重要环节质...2021-08-27
- 浅谈初中德育教育工作论文2021-08-27
- 双引号作用2021-09-08
- 双引号作用练习2021-09-08
- 5s管理主要作用2021-09-28
- 干部建设和谐社会中的关键作用2021-10-06
- 改革与创新的作用2022-02-17
- 工业旅游对城市发展的促进作用2022-03-28
- 试析行政监督在提高行政效率...2022-03-29
- 经济建设中会计作用的思考2022-03-31
- 会展经济对农村经济的作用以...2022-04-02
- 电子商务在服务业发展中的作用2022-04-03