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

Class Module(.cls)和.class之间的区别是什么? Visual Basic中的模块(.bas)?


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

从MSDN:Visual Basic概念:

类的数据存储方式与标准模块不同。 标准模块的数据永远不会超过一个副本。 这意味着当程序的一部分更改标准模块中的公共变量时,程序的另一部分随后读取该变量时,它将获得相同的值。

另一方面,类模块数据对于类的每个实例都是分开存在的。

从Devx.com:类模块(.cls)与模块(.bas):

在标准模块和类模块之间做出决定不是基于性能的决定,而是设计之一。 两者之间的主要区别在于它们处理数据的方式。 一个标准模块只存储一个数据副本。 类模块在类的每个实例中封装数据。 也就是说,对于类的每个实例,数据都是分开存在的。

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

存储在模块内的数据和程序的生命周期受到使用哪种类型的模块的影响。 类模块中数据和过程的生命周期由对象的生命周期定义。 所以数据和程序只有在存在对象的引用时才可用。 在标准模块中声明的数据和程序在程序的整个生命周期中都可用。

因此,要回答您的问题,如果您正在编写一个函数,该函数在程序的整个生命周期中都可用,并且该应用程序中的所有代码都可以看到该函数,那么将该函数放置在标准模块中。


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

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

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

存储在模块内的数据和程序的生命周期受到使用哪种类型的模块的影响。 类模块中数据和过程的生命周期由对象的生命周期定义。 所以数据和程序只有在存在对象的引用时才可用。 在标准模块中声明的数据和程序在程序的整个生命周期中都可用。

链接地址: http://www.djcxy.com/p/86429.html

上一篇: Class Module(.cls) vs Module(.bas) in Visual Basic

下一篇: Java: Convert int[] to smallest representation as ranges