vb 模块和作用域的关系

简介: vb 模块和作用域的关系

模块

在VB中有三种类型的模块,分别是窗体模块、标准模块和类模块。


窗体模块

窗体模块中包含了窗体以及窗体中所有控件的事件过程,文件扩展名为(*.frm),窗体文件中不仅包含窗体对象的外观设计,也包含窗体模块(Form Module)。


标准模块

在一个工程中,某些代码要被多个窗体或设计器共同使用,就可以将这些代码存储在一个标准模块(Standard Module)中,其文件扩展名为(*.bas)。标准模块中只含有代码。程序一运行就加载模块,它的函数和变量是全局的,随时可以调用。


类模块

如果要创建自己定义的对象,就要首先创建一个类模块(Class Module)。类模块中包含了自定义的属性、方法和事件的定义及其实现。它是数据和代码的结合体,可以将其理解为是没有物理表现的控件。其文件扩展名为(*.cls)。类模块就是一个类,要实例化对象才能调用它的函数。


作用域

一段程序代码中所用到的名字并不总是有效/可用的,而限定这个名字的可用性的代码范围就是这个名字的作用域。


变量的3种作用域:


1、单个过程:在一个过程中声明的变量,作用域只包含本过程,也可以称作 过程变量。


2、单个模块:在模块的第一个过程之前声明的变量,作用域包含本模块,也可以称作 模块变量。


3、所有模块:在任意一个模块的第一个过程之前使用Public声明的变量,作用域包含本工作簿的所有模块,也可以称作为 公共变量。


为什么窗体中无论是public,还是private都只在窗体内有效,而标准模块则不同

051846388642d74c1e4fedbafe60fc6b.png

3c56799c137cd642adc87e61231582de.png

答案来源于标准模块的作用


简单的应用程序可以只有一个窗体,应用程序的所有代码都驻留在窗体模块中。而当应用程序庞大复杂时,就要另加窗体。最终可能会发现在几个窗体中都有要执行的公共代码。因为不希望在两个窗体中重复代码,所以要创建一个独立模块,它包含实现公共代码的过程。独立模块应为标准模块。此后可以建立一个包含共享过程的模块库。


相关文章
|
8月前
|
JavaScript 前端开发
避免将变量和函数暴露给全局作用域可能导致的命名冲突和代码可维护性
保护变量和函数不暴露于全局作用域可防止命名冲突,提升代码可维护性。
|
8月前
|
存储 数据可视化 编译器
learn_C_deep_1 (C程序补充知识、变量的声明和定义、声明和定义的区别)
learn_C_deep_1 (C程序补充知识、变量的声明和定义、声明和定义的区别)
UML关系与代码的映射
UML关系与代码的映射
【vb.net机房收费系统】之没有包含要从继承的组件的已生成程序集
【vb.net机房收费系统】之没有包含要从继承的组件的已生成程序集
47 0
|
设计模式 存储 前端开发
层次结构及对象的定义|学习笔记
快速学习层次结构及对象的定义
161 0
VB编程:利用CallByName函数对对象进行操作-23
VB编程:利用CallByName函数对对象进行操作-23
151 0
VB编程:利用Object变量传递参数-21
VB编程:利用Object变量传递参数-21
133 0
|
Kotlin
【Kotlin】扩展函数作用域分析 ( 扩展函数导入 | 扩展函数重载 | 扩展函数作用域优先级 )(二)
【Kotlin】扩展函数作用域分析 ( 扩展函数导入 | 扩展函数重载 | 扩展函数作用域优先级 )(二)
267 0
【Kotlin】扩展函数作用域分析 ( 扩展函数导入 | 扩展函数重载 | 扩展函数作用域优先级 )(二)
|
Kotlin
【Kotlin】扩展函数作用域分析 ( 扩展函数导入 | 扩展函数重载 | 扩展函数作用域优先级 )(一)
【Kotlin】扩展函数作用域分析 ( 扩展函数导入 | 扩展函数重载 | 扩展函数作用域优先级 )(一)
184 0
【Kotlin】扩展函数作用域分析 ( 扩展函数导入 | 扩展函数重载 | 扩展函数作用域优先级 )(一)
|
算法 Python
Python基础--Python面向对象的中,类与类之间存在三种关系:依赖关系、组合关系、继承关系。
在面向对象的中,类与类之间存在三种关系:依赖关系、组合关系、继承关系。
256 0

热门文章

最新文章