Visual Basic.NET+SQL Server全程指南
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

实例2-2 变量的作用范围

该实例实现步骤如下。

1 创建窗体

在本章的项目chapter2中,右键单击解决方案资源管理器中项目名下对应节文件夹“数据类型”,在弹出菜单中选择“添加”→“Windows窗体”菜单命令,在弹出的对话框中输入窗体名VarZFrm,单击“添加”按钮,完成窗体的创建。

2 添加代码

在窗体类中添加代码2-2中的代码。

代码2-2 VarZFrm.vb

        01. Public Class VarZFrm
        02. Private str1 As String = "变" '声明类中的局部变量
        03.     Private Sub VarZFrm_Load(ByVal sender As System.Object, ByVal e As
    System.EventArgs) Handles MyBase.Load
        04.         Dim str2 As String = "量" '声明sub过程中的局部变量
        05.         MsgBox(str1 + str2) '显示两字符串连接的内容
        06.     End Sub
        07. End Class

代码2-2的执行步骤如下:

① 第2行代码声明局部变量str1对类中所有事件方法都可以使用;

② 第4行代码声明局部变量str2只有在声明该变量的事件中可用。

3 运行结果

按F5键,运行程序,弹出如图2-7所示对话框。

图2-7 实例2-2运行结果

3.常量

在编程时,会遇到代码中包含一些数值,且它们反复出现的情况。程序中常要用到很难记住的数字,且那些数字没有明确意义。这种情况下,可以用常量来方便地改进代码的可读性和可维护性。常量是用有意义的名字代替经常用到的数值或字符串。尽管常量有点像变量,但不能像对变量那样对其值进行修改,也就是说对常量赋初值后就不能再次赋值了。常量可以分为数值常量、字符串常量、逻辑常量和符号常量等。

(1)数值常量

整型(Integer)、长整型(Long)、单精度小数(Single)、双精度小数(Double)和其他表示数值的数据类型都称为数值常量。

(2)字符串常量

字符串常量是一串字符,一般用双引号括起来,如“asgfdh”。一个字符串中一个字符占一个字节,一个字符串长度就是一串字符的字节长度。

(3)逻辑常量

逻辑常量只有两个值,是Boolean类型的值,一个是True,另一个是False。

以上这些常量都是内部或系统定义的常数,是由应用程序和控件提供的,这些常数是由VB.NET系统定义的。

(4)符号常量

符号常量是用一个符号代替一个常量,在使用的时候只要使用这个符号,而不需要输入常量。在一个程序中,如果需要多次使用同一个常量或常数,就可以使用符号常量。例如,在程序中需要求圆的面积、周长等都需要用到圆周率(常取3.14)这个常量,所以可以使用符号PI来代替3.14。

常量有以下两种来源。

(1)内部或系统定义的常量由应用程序和控件提供。这些常量是在Visual Basic对象库中定义的。

(2)用户定义的常量用const语句来声明。

Visual Basic对象库的常量由以下形式构成。

NameSpaces1.NameSpaces2.….ConstName

例如,Microsoft.VisualBasic.MsgBoxStyle.OKOnly是Visual Basic对话框中的一个常数,值为0。

(ⅰ)自定义常量

声明常量的语法如下:

        [Public|Private|Protected|Friend|Protected Friend]
        const constname [As type]=expression

参数“constname”是有效的符号名,“expression”由数值常数或字符串常数及运算符组成;但在“expression”中不能使用函数调用。Const语句可表示数量、日期和时间,示例如下:

        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

定义常量后,可将其放置在代码中,使代码可读性增强。示例如下:

        Const conPi=3.14
        Area=conPi*dblr^2

(ⅱ)避免循环引用

由于常量可以用其他常量定义,因此必须小心使用,在两个以上常量之间不要出现循环或循环引用。当程序中有两个以上的公用常量,而且每个常量都用另一个去定义时就会出现循环,示例如下:

        '在Module1中
        Public Const conA=conB*2 '在整个应用程序中有效
        '在Module2中
        Public Const conB=conA/2 '在整个应用程序中有效

如果出现循环,在试图运行此应用程序时,Visual Basic就会产生错误信息。不解决循环引用就不能运行程序。为避免出现循环,可将公共常量限制在单一模块内,或者只存在于少数几个模块内。

下面以实例说明常量的使用。