天天看点

深入剖析VB.NET变量的使用

    引言:

    VB.NET作为.NET的主要语言之一,在面向对象技术流行的时代被赋予了全新的意义,曾被专业程序设计师所不屑的VB第一次拥有了无穷的能量,完全可以与C/C++ OR C# OR JAVA等媲美!作为一个vb/vb.net的爱好者(开发者),要充分利用VB.NET带给我们的无穷能量,就要弃"把玩"的态度,深入研究,由于本人不是所谓的"专家",如有不妥之处,诚请各位指正.

    正文:

    大家可能会想:对于一个学习过任何一种编程语言的人来说,像常量,变量之类的概念应该再熟悉不过了,但真的是如此吗?本篇文章将就变量的命名规则,作用范围和生存期两部分深入探讨VB.NET变量的使用.

  第一部分:变量的命名规则

  何为变量的命名规则?变量的命名规则就是为了让代码更加易于阅读和维护管理而制定的程序编写的命名准则,下面就以微软建议采用的命名规则进行介绍.

  一般变量应该遵循如下命名规则:

            范围+数据类型+标识名称

  其中范围表示变量的作用范围,如果是公有变量就用小写的g表示(global),局部变量则直接省略不写;

  数据类型则为像Integer,string等数据类型的小写的三码简写.以下列出包含范例数据类型的三码简写表,供大家参考使用.

    数据类型        缩写           范例

     Byte            byt           bytCount

    Boolean          bln           blnIsMale

    Integer          int           intAge

    Long             lng           lngNumber

    Single           sng           sngTax

    Double           dbl           dblIncome

    Short            shr           shrEnployeeNumber

    Decimal          dec           decIncome

    Date             dat           datMyBirthday

    Object           obj           objConn

    String           str           strMyName

    Stucture         udt           udtMyStructure

       注:udt就是英文user define type的简写

  标识名称:变量的主体,建议使用以英文大小写搭配,并以容易记忆,能够代表变量用意的名称,当然前提是标识名称必须是合法的(关于什么才是合法的名称请参考其他的资料),是如自己的名字MyName(按照命名规则就是strMyName).

  依据变量的数据类型来为变量命名,是区分专业与业余程序设计师最简单的判断法则,希望大家能有意识地培养使用这些命名准则的声明变量的习惯.

   第二部分:变量的作用范围和生存期

   VB.NET是一种基于.NET平台面向对象的程序语言,具备面向对象技术的所有特性,在.NET平台下,所有包括数据类型,窗体等都是以类加以实现的,要更好理解变量的作用范围,那么就要以类的观点来看待变量的作用范围和生存期.

   我们先来看看变量的一般声明方式: [Public|Protected|Friend|ProtectedFriend|Private|dim|static|shared]

VariableName as VariableType

  其实变量的作用范围和生存期取决两个因素:变量声明使用了[]中的那个关键字和在何处声明.

  我先来说说我们最常用的几个关键字:Public,Private,dim,static

  Public关键字不能在函数,(事件)过程,区域内部(如:for..next等语句内)使用,一般只能在模块内声明为全局变量,如下的intCount;另外Public在类中声明的是公有变量(成员),表示可以被派生类继承的成员;

 Module module1

    Puplic intCount AS integer

 End Module

   用Private,dim声明的变量都是局部变量,它的范围取决与变量在何处声明.如在窗体声明区声明,则有效范围为窗体内部,以此类推,在(事件)过程,模块内声明,相对应的只有在(事件)过程,模块内有效.如过在类中声明变量,则为私有变量(成员),表示部可以被派生类继承的成员;

   比较特别的是static,它声明的变量叫静态变量,那么什么是静态变量呢?我的说法就是:作用范围和生存期不一致的变量.一般的变量,其作用范围和生存期都是一致的.static声明的变量提供了局部的作用范围和全局的生存期,也就是说,它的可访问的范围取决与它在何处声明所对应的范围,而无论在何处声明,都提供整个程序的生存期(全局).需要注意的是:不能将 Static 修饰符用于结构中的局部变量

  至于Protected,Friend,Protected Friend关键字,则通常用在类中进行变量的声明,Protected(保护)的有效范围介于Public和Private之间:对于类以外的代码,它像私有成员一样无法访问,然而对于继承它的派生类来说,就像公有成员一样可以继承为自己的成员;Friend(友好)的有效范围则比Protected更大,只要是同个项目的文件和类.均可访问,换一种说法,就是程序集范围;Protected Friend则是Protected,Friend的结合:有效范围为派生类和同个项目内的文件.

  还有一个很重要的关键字--shared.它在类中声明的变量叫做共享成员,所谓的共享成员就是在类尚未产生实际的对象前,便可以访问或调用的属性和方法.在这里,我们就拿窗体类Form类来说明,大家在学VB.NET的时候首先要碰到的应该就是窗体了吧,但是窗体是一个类而非对象,那么要使用窗体的一些属性的话拿就要使用它的共享成员.想必大家还知道activeform吧!在这不用我多解释,相信聪明的你一定能够理解吧!