设置首页  |   加入收藏  |  联系我们   
您的位置: 主页>程序设计>ViualBasic>正文
VisualBasic变量、常数和数据类型及过程概述二
文章来源:  编辑:  发布时间:2007-11-27

    常数

    经常会发现代码包含一些常数值,它们一次又一次地反复出现。还可发现,代码要用到很难记住的数字,而那些数字没有明确意义。
    在这些情况下,可用常数大幅度地改进代码的可读性和可维护性。常数是有意义的名字,取代永远不变的数值或字符串。尽管常数有点像变量,但不能像对变量那样修改常数,也不能对常数赋以新值。常数有两种来源:
    1.内部的或系统定义的常数是应用程序和控件提供的。在“对象浏览器”中的VisualBasic(VB)、和VisualBasicforapplications(VBA)对象库中列举了VisualBasic的常数。其它提供对象库的应用程序,如MicrosoftExcel和MicrosoftProject,也提供了常数列表,这些常数可与应用程序的对象、方法和属性一起使用。在每个ActiveX控件的对象库中也定义了常数。关于使用“对象浏览器”的详细信息,请参阅第九章“用对象编程”。
    2.符号的或用户定义的常数是用Const语句来声明的。下节“创建属于自己的常数”中将说明用户定义的常数。
    在VisualBasic中,常数名采用大小写混合的格式,其前缀表示定义常数的对象库名。来自VisualBasic和VisualBasicforapplications对象库的常数以"vb"开头,例如vbTileHorizontal。
    设计前缀时应尽力防止发生意外冲突,不能出现常数名称相同但表示不同数值的情况。即使使用了前缀,两个对象库也仍可能包含表示不同值的相同常数。在这种情况下,引用哪个常数取决于哪个对象库具有更高的优先级。关于改变对象库优先级的信息,请参阅“引用对话框”部分。
    为了绝对确保不发生常数名字冲突,可用以下语法来限定对常数的引用:
    [libname.][modulename.]constname
    Libname通常是控件或库的类名。Modulename是定义常数的模块的名字。Constname是常数名。在对象库中定义了每个元素,并能在“对象浏览器”中查看元素。

    创建属于自己的常数
    声明常数的语法是
    [Public|Private]Constconstantname[Astype]=expression
    参数constantname是有效的符号名(其规则与建立变量名的规则一样),expression由数值常数或字符串常数以及运算符组成;但在expression中不能使用函数调用。
    Const语句可以表示数量、日期和时间:
    ConstconPi=3.14159265358979
    PublicConstconMaxPlanetsAsInteger=9
    ConstconReleaseDate=#1/1/95#
    也可用Const语句定义字符串常数:
    PublicConstconVersion="07.10.A"
    ConstconCodeName="Enigma"
    如果用逗号进行分隔,则在一行中可放置多个常数声明:
    PublicConstconPi=3.14,conMaxPlanets=9,_
    conWorldPop=6E 09
    等号(=)右边的表达式往往是数字或文字串,但也可以是其结果为数或字符串的表达式(尽管表达式不能包含函数调用)。甚至可用先前定义过的常数定义新常数。
    ConstconPi2=conPi*2一旦已定义常数,就可将其放置在代码中,使代码更可读。例如:
    StaticSolarSystem(1ToconMaxPlanets)
    IfnumPeople>conWorldPopThenExitSub

    设定用户自定义常数的范围
    和变量声明一样,Const语句也有范围,也使用相同的规则:
     为创建仅存在于过程中的常数,请在这个过程内部声明常数。
     为创建一常数,它对模块中所有过程都有效,但对模块之外任何代码都无效,请在模块的声明段中声明常数。
     为创建在整个应用程序中有效的常数,请在标准模块的声明段中进行声明,并在Const前面放置Public关键字。在窗体模块或类模块中不能声明Public常数。
    详细信息关于范围的更详细信息,请参阅本章前面的“理解变量的范围”一节.

    避免循环引用
    由于常数可以用其它常数定义,因此必须小心,在两个以上常数之间不要出现循环或循环引用。当程序中有两个以上的公用常数,而且每个公用常数都用另一个去定义时就会出现循环。例如:
    '在Module1中:
    PublicConstconA=conB*2    '在整个应用程序
                      '中有效。
    '在Module2:
    PublicConstconB=conA/2    '在整个应用程序
                      '中有效。
    如果出现循环,在试图运行此应用程序时,VisualBasic就会产生错误信息。不解决循环引用就不能运行程序。为避免出现循环,可将公共常数限制在单一模块内,或最多只存在于少数几个模块内。

    数据类型
    变量是用来存储值的所在处,它有名字和数据类型。变量的数据类型决定了如何将代表这些值的位存储到计算机的内存中。在声明变量时也可指定它的数据类型。所有变量都具有数据类型,以决定能够存储哪种数据。
    根据缺省规定,如果在声明中没有说明数据类型,则令变量的数据类型为Variant。Variant数据类型很像一条变色龙,它可在不同场合代表不同数据类型。当指定变量为Variant变量时,不必在数据类型之间进行转换,VisualBasic会自动完成各种必要的转换。
    但是,如果知道变量确实总是存储特定类型的数据,并且还声明了这种特定类型的变量,则VisualBasic会以更高的效率处理这个数据。例如,存储人名的变量最好表示成String数据类型,因为名字总是由字符组成。
    除变量外,数据类型也用于其它场合。在给属性赋值时,这个值就有数据类型;函数的参数也有数据类型。事实上,在VisualBasic中,凡是与数据有关的东西就与数据类型有关。
    你也可声明任何基本类型的数组。
    详细信息关于更详细信息,请参阅本章后面的“数组”部分。在第十五章“性能和兼容性的设计”中还将讨论通过选择数据类型来提高应用程序的性能。

    声明带数据类型的变量
    在使用非Variant变量之前,必须使用Private、Public、Dim或Static语句将变量声明为Astype。例如,下列语句分别声明了Integer、Double、String和Currency类型的变量:

 
Tags:过程 概述 类型 数据 变量 常数 声明 定义 对象 模块

Google
 
上一篇: VisualBasic编程基础--应用程序的结构   下一篇: VisualBasic变量、常数和数据类型及过程概述四
【返回顶部】 【打印】 【大】 【中】 【小】 【关闭】

 我来说两句
用户名: 新注册) 密码: 匿名评论 [论坛讨论]
评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
 相关文章
 热门文章

 
版权所有  2005-2006  Linux集中营  闽ICP备07500055号