(100分)VB中,public和global有什么区别?

解决方案 »

  1.   

    Public 语句      在模块级别中使用,用于声明公用变量和分配存储空间。语法Public [WithEvents] varname[([subscripts])] [As [New] type] [,[WithEvents] varname[([subscripts])] [As [New] type]] . . .Public 语句的语法包含下面部分:部分 描述 
    WithEvents 可选的。关键字,说明 varname 是用来响应由 ActiveX 对象触发的事件的对象变量。只有在类模块中才是合法的。使用 WithEvents,可以定义任意个所需的单个变量,但不能用 WithEvents 创建数组。New 和 WithEvents 不能一起使用。 
    varname 必需的。变量的名称;遵循标准的变量命名约定。 
    subscripts 可选的。数组变量的维数;最多可以定义 60 维的多维数组。subscripts 参数使用下面的语法: 
      [lower To] upper [,[lower To] upper] . . . 
      如果不显式指定 lower,则数组的下界由 Option Base 语句控制。如果没有 Option Base 语句则下界为 0。 
    New 可选的。用它可以隐式地创建对象的关键字。如果使用 New 声明对象变量,则在第一次引用该变量时创建该对象的新实例,因此不必使用 Set 语句来对该对象引用赋值。New 关键字不能用来声明任何内部数据类型的变量以及从属对象的实例,也不能与 WithEvents 一起使用。 
    type 可选的。变量的数据类型;可以是 Byte、Boolean、Integer、Long、Currency、Single、Double、Decimal(目前尚不支持)、Date、String(对变长的字符串)、String * length(对定长的字符串)、Object或 Variant,用户定义类型,或对象类型。所声明的每个变量都要有一个单独的 As type 子句。 
    说明Public 语句声明的变量在所有应用程序的所有没有使用 Option Private Module 的模块的任何过程中都是可用的;若该模块使用了 Option Private Module,则该变量只是在其所属工程中是公用的。小心 不能在类模块中使用 Public 语句来声明一个定长的字符串变量。使用 Public 语句可以声明变量的数据类型。例如,下面的语句声明了一个 Integer 类型的变量。Public NumberOfEmployees As Integer也可以使用 Public 语句来声明变量的对象类型。下面的语句为工作表的新实例声明了一个变量。Public X As New Worksheet如果在定义对象变量时没有使用 New 关键字,则在使用该变量之前,必须使用 Set 语句将一个已有的对象赋给这个引用对象的变量。在被赋值之前,所声明的这个对象变量有一个特定值 Nothing,这个值表示该变量没有指向任何对象的实例。可以用带空圆括号的 Public 语句来声明动态数组。在声明了动态数组之后,可以在过程内用 ReDim 语句来定义该数组的维数和元素。如果试图在 Private、Public 或 Dim 语句中重定义一个已被显式定义了大小的数组的维数,就会发生错误。如果不指定数据类型或对象类型,且在模块中没有使用 Deftype 语句,则按缺省情况该变量为 Variant 类型。当初始化变量时,数值变量被初始化为 0,变长的字符串被初始化为一个零长度的字符串 (""),而定长的字符串则用 0 填充。Variant 变量被初始化为 Empty。用户自定义类型的变量的每个元素都作为各自独立的变量进行初始化。
      

  2.   

    Global 对象
                Global 对象是应用程序对象,使用该对象,就可对应用程序级的属性和方法进行存取。语法Global说明Global 是 Object 数据类型的。因为 Global 对象是一个被自动引用的应用程序对象,所以不需要为引用该对象而编制特定的代码。
      

  3.   

    在bas模块里定义如下:
    Public Const PI As Double = 3.1415926
    Global Const gNum As Integer = 100有什么区别???
      

  4.   

    老实说,我还没有用过Global呢!
      

  5.   

    坦白交待:我不知道Global我从来不关心……
      

  6.   

    本人只知道在使钩子处理消息时,需要用Global级的变量。
      

  7.   

    Visual Basic 中的 Global Vs Public 
    Last reviewed: July 29, 1997
    Article ID: Q115512  
    The information in this article applies to: 
    Microsoft Visual Basic Programming System, Applications Edition, version 1.0 
    Microsoft Excel for Windows, version 5.0 
    Microsoft Project for Windows, version 4.0 
    摘要
        在 Microsoft Visual Basic 3.0 版中, 你可以在模块的声明段使用 Global 语句来声明一个全局变量。全局变量可以在所有窗体和模块的所有过程中使用。     在 Microsoft Visual Basic Programming System, Applications Edition 版中,你可以使用 Public 语句声明共用变量,它可用于工程中的所有过程。     在 Visual Basic, Applications Edition 中的 Public 语句,起着与 Visual Basic version 3.0 版中 Global 同样的作用。考虑到它的反义词 Private,Public 的名称更直观。当你使用 Private 语句声明一个私有变量时,它只能用于声明它时所在的模块。 支持 Global 语句是出于 Visual Basic, Applications Edition 的兼容性;然而 Public 是首选。 *Global 对象* 与这个问题没有任何关系!
      

  8.   

    老实说,我还没有用过Global呢!
      

  9.   

    Global和Public都可以用来声明全局变量Public起初似乎主要是为了在类模块中使用的,而Global只能在标准模块中使用
      

  10.   

    supergreenbean(超级绿豆.监考ing=False)  说的有道理..
    在类模块里不可以用global来定义变量.
    其原因我想应该是,在面向对象的语音里,一般都是用public 来声明公有变量,从而可以被其它对象访问.各位还要什么高见??否则我就要结贴了
      

  11.   

    一般来说,都是差不多的,看下MSDN就知了
      

  12.   

    global是VB以前的用法,为了照顾以前用户的习惯而保留,后来为了保持良好的编程习惯用public和private对应
      

  13.   

    老实说,我还没有用过Global呢!
    唉,我也是啊。
      

  14.   

    dandelionl(飘) ( ) 说得对~~就是为了兼容低版本的。应该淘汰的东东了