相信有许多朋友对类(Class)与模块(Module)之间的差异并不十分清楚,所以在此,我们就来谈谈类与模块之间有何不同.
类与模块都是将在内部定义的项目封装起来的引用类型(Reference Type),但是两者的差异在于如何从其他程序来存取这些项目.
类与模块最主要的差异就是我们可以将类加以实例化(也就是根据类来建立对象),但是标准模块则不能这样做.因为标准模块的数据只有一份,所以当您在程序中更改了标准模块中的公用(Public)变量之后,则该程序接下来读取到该变量时,程序就会获得相同的值.就此方面而言,每一个根据类所建立之实例(或是说对象)的数据则是彼此完全独立的.类与模块的另外一项重大差异,就是类可以实现接口.
类与模块都可以定义其成员的使用范围.定义于类中的成员是位于类之特定实例的范围内,并仅存在于对象的生命周期(Lifetime)中.其结果是,如果要从类外部存取类成员,您务必使用完整的名称,例如:Object.Member.另外一方面,声明于标准模块之内的成员,默认是共用的,其范围局限于内含命名空间之标准模块的声明中.这表示标准模块内的公用变量是有效的全局变量,因为从它们在项目内的任何地方都是可见的,且在程序的驻留期间都会存在.与类成员不同的是,标准模块的成员为隐含共用,且无法使用Shared关键字.