VB中public只能作用于标准模块的通用部分,private可以作用于标准模块和窗体模块,是对的吗?他们作用于
3个回答
展开全部
根据MSDN的定义,
1、Public是在公共模块中定义变量、对象和过程时使用的,定义的变量、对象和过程可以在整个程序的各个模块中使用,包括窗体模块和标准模块。
如果使用Public在窗体模块或者类模块中定义的变量、对象和过程,通过窗体名称或者类名称的引用也可以在其他模块中使用。
2、 Private在模块级别中定义变量、对象和过程时使用的,定义的变量、对象和过程只能在本模块内使用。
MSDN是这样定义的:
一、Private 语句
Private 语句:在模块级别中使用,用于声明私有变量及分配存储空间。
Private 变量只能在包含其声明的模块中使用。
可以使用 Private 语句声明变量的数据类型。例如,Private NumberOfEmployees As Integer
也可以使用 Private 语句来声明变量的对象类型。例如,Private X As New Worksheet
可以用带空圆括号的 Private 语句来声明动态数组,然后可以在过程内用 ReDim 语句来定义该数组的维数和元素。
可以使用 Private 语句声明一个过程。
Private 语句声明的变量(包括数组变量)、对象和过程,只在声明所在的模块中有效。
二、Public 语句
Public 语句:在模块级别中使用,用于声明公用变量和分配存储空间。
Public 语句声明的变量(包括数组变量)、对象和过程在所有应用程序的所有没有使用 Option Private Module 的模块的任何过程中都是可用的;若该模块使用了 Option Private Module,则该变量只是在其所属工程中是公用的。
使用 Public 语句可以声明变量的数据类型。例如,Public NumberOfEmployees As Integer
也可以使用 Public 语句来声明变量的对象类型。例如,Public X As New Worksheet
可以用带空圆括号的 Public 语句来声明动态数组。在声明了动态数组之后,可以在过程内用 ReDim 语句来定义该数组的维数和元素。
可以使用 Public 语句声明一个过程。
1、Public是在公共模块中定义变量、对象和过程时使用的,定义的变量、对象和过程可以在整个程序的各个模块中使用,包括窗体模块和标准模块。
如果使用Public在窗体模块或者类模块中定义的变量、对象和过程,通过窗体名称或者类名称的引用也可以在其他模块中使用。
2、 Private在模块级别中定义变量、对象和过程时使用的,定义的变量、对象和过程只能在本模块内使用。
MSDN是这样定义的:
一、Private 语句
Private 语句:在模块级别中使用,用于声明私有变量及分配存储空间。
Private 变量只能在包含其声明的模块中使用。
可以使用 Private 语句声明变量的数据类型。例如,Private NumberOfEmployees As Integer
也可以使用 Private 语句来声明变量的对象类型。例如,Private X As New Worksheet
可以用带空圆括号的 Private 语句来声明动态数组,然后可以在过程内用 ReDim 语句来定义该数组的维数和元素。
可以使用 Private 语句声明一个过程。
Private 语句声明的变量(包括数组变量)、对象和过程,只在声明所在的模块中有效。
二、Public 语句
Public 语句:在模块级别中使用,用于声明公用变量和分配存储空间。
Public 语句声明的变量(包括数组变量)、对象和过程在所有应用程序的所有没有使用 Option Private Module 的模块的任何过程中都是可用的;若该模块使用了 Option Private Module,则该变量只是在其所属工程中是公用的。
使用 Public 语句可以声明变量的数据类型。例如,Public NumberOfEmployees As Integer
也可以使用 Public 语句来声明变量的对象类型。例如,Public X As New Worksheet
可以用带空圆括号的 Public 语句来声明动态数组。在声明了动态数组之后,可以在过程内用 ReDim 语句来定义该数组的维数和元素。
可以使用 Public 语句声明一个过程。
展开全部
你可以看看我的空间里的文章:
关于在VB中变量的作用域及生命周期
关于在VB中变量的作用域及生命周期
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Private是在窗体模块中定义变量、数据类型或者子过程时使用的,定义的东西只能在本窗体内使用;
Public是在公共模块中定义变量、数据类型或者子过程时使用的,定义的东西可以在整个程序的各个窗体中使用。
譬如:
Private:
(窗体中的公共部分写入)
Private Declare Function RegSetValueEx Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, lpData As Any, ByVal cbData As Long) As Long ' Note that if you declare the lpData parameter as String, you must pass it By Value.
这段内容声明的函数,只能在本窗体中使用。
Public:
(公共模块中写入)
public x as integer
此时,该x可以被各个窗体调用
Public是在公共模块中定义变量、数据类型或者子过程时使用的,定义的东西可以在整个程序的各个窗体中使用。
譬如:
Private:
(窗体中的公共部分写入)
Private Declare Function RegSetValueEx Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, lpData As Any, ByVal cbData As Long) As Long ' Note that if you declare the lpData parameter as String, you must pass it By Value.
这段内容声明的函数,只能在本窗体中使用。
Public:
(公共模块中写入)
public x as integer
此时,该x可以被各个窗体调用
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询