当前课程知识点:数据库技术与程序设计 > 第四章 常量、变量、表达式与函数 > 4.2 常量 > 【扩展阅读】VB常数
常数
经常会发现代码包含一些常数值,它们一次又一次地反复出现。还可发现,代码要用到很难记住的数字— 而那些数字没有明确意义。
在这些情况下,可用常数大幅度地改进代码的可读性和可维护性。常数是有意义的名字,取代永远不变的数值或字符串。尽管常数有点象变量,但不能象对变量那样修改常数,也不能对常数赋以新值。常数有两种来源:
内部的或系统定义的常数是应用程序和控件提供的。在“对象浏览器”中的 Visual Basic ( VB ) 、和 Visual Basic for applications ( VBA ) 对象库中列举了 Visual Basic 的常数。其它提供对象库的应用程序,如 Microsoft Excel 和 Microsoft Project,也提供了常数列表,这些常数可与应用程序的对象、方法和属性一起使用。在每个 ActiveX 控件的对象库中也定义了常数 关于使用“对象浏览器”的详细信息,请参阅“用对象编程”。
符号的或用户定义的常数是用 Const 语句来声明的。下节“创建属于自己的常数”中将说明用户定义的常数。
在 Visual Basic 中,常数名采用大小写混合的格式,其前缀表示定义常数的对象库名。来自 Visual Basic 和 Visual Basic for applications 对象库的常数以 "vb" 开头— 例如vbTileHorizontal。
设计前缀时应尽力防止发生意外冲突,不能出现常数名称相同但表示不同数值的情况。即使使用了前缀,两个对象库也仍可能包含表示不同值的相同常数。在这种情况下,引用哪个常数取决于哪个对象库具有更高的优先级。关于改变对象库优先级的信息,请参阅 “引用对话框”部分。
为了绝对确保不发生常数名字冲突,可用以下语法来限定对常数的引用:
[libname.][modulename.]constname
Libname 通常是控件或库的类名。Modulename 是定义常数的模块的名字。Constname 是常数名。在对象库中定义了每个元素,并能在“对象浏览器”中查看元素。
创建属于自己的常数
声明常数的语法是:
[Public|Private] Const constantname[As type] = expression
参数 constantname 是有效的符号名(其规则与建立变量名的规则一样),expression 由数值常数或字符串常数以及运算符组成;但在 expression 中不能使用函数调用。
Const 语句可以表示数量或 Date / Time 量:
Const conPi = 3.14159265358979
Public Const conMaxPlanets As Integer = 9
Const conReleaseDate = #1/1/95#
也可用 Const 语句定义字符串常数:
Public Const conVersion = "07.10.A"
Const conCodeName = "Enigma"
如果用逗号进行分隔,则在一行中可放置多个常数声明:
Public Const conPi = 3.14, conMaxPlanets = 9, _
conWorldPop = 6E+09
等号 ( = ) 右边的表达式往往是数字或文字串,但也可以是其结果为数或字符串的表达式(尽管表达式不能包含函数调用)。甚至可用先前定义过的常数定义新常数。
Const conPi2 = conPi * 2
一旦已定义常数,就可将其放置在代码中,使代码更可读。例如:
Static SolarSystem (1 To conMaxPlanets)
If numPeople > conWorldPop Then Exit Sub
设定用户自定义常数的范围编辑
和变量声明一样, Const 语句也有范围,也使用相同的规则:
为创建仅存在于过程中的常数,请在这个过程内部声明常数。
为创建一常数,它对模块中所有过程都有效,但对模块之外任何代码都无效,请在模块的声明段中声明常数。
为创建在整个应用程序中有效的常数,请在标准模块的声明段中进行声明,并在 Const 前面放置 Public 关键字。在窗体模块或类模块中不能声明 Public 常数。
详细信息 关于范围的更详细信息,请参阅本章前面的“理解变量的范围”一节。
避免循环引用
由于常数可以用其它常数定义,因此必须小心,在两个以上常数之间不要出现循环或循环引用。当程序中有两个以上的公用常数,而且每个公用常数都用另一个去定义时就会出现循环。
例如:
'在 Module1 中:
Public Const conA = conB * 2 '在整个应用程序
'中有效。
'在 Module 2:
Public Const conB = conA / 2 '在整个应用程序
'中有效。
如果出现循环,在试图运行此应用程序时,Visual Basic 就会产生错误信息。不解决循环引用就不能运行程序。为避免出现循环,可将公共常数限制在单一模块内,或最多只存在于少数几个模块内。
参考文献来源:百度百科,维基百科,ScienceDaily
-知识点拼图+问题求解流程+软件工程开发教学流程——写给翻转课堂开课教师
-技术分享贴续篇:怎样用窗体显示一条记录存储的多张OLE图像文件?
-技术分享贴:复杂的SQL自体连接和嵌套查询,涨粉最多的用户ID和涨粉数
-往届竞赛获奖作品展示
-1.1 数据与数据管理
--【拓展阅读】到底什么是IT(Information Technology)
-1.2 DBS=DB+DBMS
-1.3 不以六律不能正五音——数据模型
-- 课件1.3.1 数据模型
-1.4 数据库系统结构
-本章小结
--第一章小结
-第一章作业
-2.1 数据库设计流程
-2.2 概念结构设计
-2.3 逻辑结构设计
-本章小结
--第二章小结
-第二章作业
-3.1 数据库管理系统
-3.2 创建数据库
-3.3 创建数据表
-3.4 维护数据表
-本章小结
--第三章小结
-第三章作业
-4.1 基本数据类型
-4.2 常量
--4.2.1 常量
-4.3 变量和数组
--4.3.1 变量
-4.4 表达式和函数
-本章小结
--第四章小结
-第四章作业
-【讨论帖:悬赏!谁能解决Round()函数Banker’s rounding算法的bug?】
-5.1 数据检索方法
-5.2 数据库查询文件
-5.3 选择查询
-5.4 参数查询
-5.5 操作查询
-本章小结
--第五章小结
-第5章作业
-6.1 SQL概述
-6.2 SQL数据定义语言
-6.3 SQL数据查询语言
-6.4 SQL数据操作语言
-本章小结
--第六章小结
-第6章作业
-【讨论帖:你是否听说过“自然语言检索”,你在什么地方见到过,或者使用过“自然语言检索”吗?】
-7.1 窗体设计
-7.2 报表设计
-本章小结
--第七章小结
-第七章作业
-【讨论帖:你能总结一下窗体和报表的共性和区别吗?在你的工作、学习或生活中,你都见到过哪些窗体和报表的实际应用?】
-8.1 VBA编程基础
-8.2 顺序结构及常用命令
-8.3 分支结构
--8.3.2 多路分支选择语句Select Case 和分支嵌套
--课件8.3.2 多路分支选择语句Select Case 和分支嵌套
-8.4 循环结构
-8.5 函数与过程
-8.6 VBA程序调试
-8.7 数组
-本章小结
--第八章小结
-第八章作业
-【讨论帖:我们学习了VBA面向过程的程序设计,你能结合实践,谈谈自己对算法和程序的理解吗?】
-9.1 面向对象的基本概念
-9.2 控件对象的属性和方法
-9.3 控件对象的事件
-9.4 窗体的面向对象程序设计
-【拓展阅读】【综合案例】Word中的查找与替换是如何实现的?
-本章小结
--第九章小结
-第九章作业
-【讨论贴:本章用小黄鸭类比了面向对象的各种概念,你能也用类比的方式谈谈你对面向对象的理解吗?】
-10.1 宏的基本概念
-10.2 宏的创建与调用
-10.3 数据宏
-10.4 宏的调试和转换
-【拓展阅读】【综合案例】一句代码不敲,就开发了一个航班查询系统?
-本章小结
--第十章小结
-第十章作业
-【讨论帖:王者、LOL、魔兽、DOTA……,说说你在虚拟世界里用宏(超级宏)所向披靡的故事吧!】
-11.1 数据库应用系统结构
-11.2 教学教务管理系统功能需求
-11.3 教学教务管理系统底层数据结构
-11.4 登录模块实现
-11.5 学生管理模块实现
-11.6 教学管理模块实现
-11.7 系统测试与发布
-本章小结
--第十一章小结
-课程综合设计
-综合练习题库