Vb6 Visual Basic中的类模块(.cls)与模块(.bas)

Vb6 Visual Basic中的类模块(.cls)与模块(.bas),vb6,Vb6,类模块(.cls)和。Visual Basic中的模块(.bas)如果程序的生命周期需要该代码,并且该代码对应用程序中的所有代码都可见,则将该函数放在标准模块中 标准模块仅存储数据的一个副本。类模块将数据封装在类的每个实例中。也就是说,对于类的每个实例,数据分别存在 通常,在标准模块中声明为公共的任何变量和过程都可以在项目中的任何位置看到。 在类模块中声明为公共的变量和过程只能通过对类模块实例的引用来查看 存储在模块中的数据和过程的生存期受使用的模块类型的影响。类模块中数据和过程的生存期由对象的

类模块(.cls)和。Visual Basic中的模块(.bas)

如果程序的生命周期需要该代码,并且该代码对应用程序中的所有代码都可见,则将该函数放在标准模块中

标准模块仅存储数据的一个副本。类模块将数据封装在类的每个实例中。也就是说,对于类的每个实例,数据分别存在

通常,在标准模块中声明为公共的任何变量和过程都可以在项目中的任何位置看到。 在类模块中声明为公共的变量和过程只能通过对类模块实例的引用来查看

存储在模块中的数据和过程的生存期受使用的模块类型的影响。类模块中数据和过程的生存期由对象的生存期定义。因此,只有在存在对对象的引用时,数据和过程才可用。标准模块中声明的数据和过程在程序的生命周期内可用。

模块(.bas)具有可在程序中全局使用的方法和变量,并且只有一个数据实例(类似于C#中的静态方法或字段)。类模块(.cls)的属性和方法通常只能在实例化对象时访问,但可以有多个副本,每个副本都有不同的数据

发件人:

类的数据存储方式不同于标准模块。 标准模块数据的副本不得超过一份。这 意味着当程序的一部分在 一个标准模块和程序的另一部分随后读取 该变量将获得相同的值

另一方面,类模块数据分别存在于每个 类的实例

和来自:

在标准模块和类模块之间做出决定并不是一个简单的问题 基于性能的决策,而非设计。主要区别 两者之间的区别在于它们处理数据的方式。标准模块 仅存储数据的一个副本。类模块封装数据 在类的每个实例中。也就是说,对于 类,则数据单独存在

另一个主要区别是变量和程序的范围 在模块内。一般来说,任何变量和过程 在项目中的任何位置都可以看到标准模块中的公共 或外部程序(如果标准模块位于组件中)。 在类模块中声明为公共的变量和过程可以 只能通过对类模块实例的引用来查看

存储在模块中的数据和过程的生命周期会受到影响 使用哪种类型的模块。数据的生存期和 类模块中的过程由对象的生存期定义。 因此,只有在引用对象时,数据和过程才可用 存在。标准模块中声明的数据和过程如下: 在程序的生命周期内可用

因此,为了回答您的问题,如果您正在编写一个函数 您希望在程序的整个生命周期内都可用且可见 应用程序中的所有代码,然后将函数放在 标准模块


它变得有点复杂,因为在多线程服务器(ActiveX EXE)中必须考虑TLS,其中每个线程在标准模块中都有自己的任何数据副本。此外,全局命名空间中的GlobalMultiUse类不需要实例化