所以我在过去的6年中一直在C#编程,现在我用VB.net弄湿了我的脚。Visual Basic模块v Singleton
我正在使用的代码库使用了一些模块。对我来说模块看起来很像一个单身人士。只有一个存在;它可以在命名空间内的任何地方调用。
有什么我在这里失踪? VB不支持单例构造的正常方式(私有构造函数/公共实例字段)吗?
所以我在过去的6年中一直在C#编程,现在我用VB.net弄湿了我的脚。Visual Basic模块v Singleton
我正在使用的代码库使用了一些模块。对我来说模块看起来很像一个单身人士。只有一个存在;它可以在命名空间内的任何地方调用。
有什么我在这里失踪? VB不支持单例构造的正常方式(私有构造函数/公共实例字段)吗?
模块不是单身人士。它更类似于C#中的静态类。如果你反编译代码,你会看到他们有一个非常相似的结构(模块有一个额外的属性)。
一个C#静态类和VB.Net模块之间的主要区别...
因此,基本上与模块一样,它就像通过并声明静态内部(这将在C#中需要)。 然后,它和单例之间的区别在于,单例支持继承(作为派生类,或来自接口)和多态,其中模块就是它的原型。我只是想把它全部整理出来。 – 2009-08-06 22:44:17
@Joel,那种。要记住关于模块的重要事情是有史以来没有实例。底下它编译到一组静态方法(就像C#静态类)。最大的区别是,如果包含模块可用,它们将被添加到全局名称范围中。 – JaredPar 2009-08-06 22:45:30