Visual Basic模块v单例

Joe*_*tti 4 vb.net singleton module

所以我在过去6年左右的时间里一直在使用C#进行编程,现在我已经厌倦了VB.net.

我正在使用的代码库使用了一些模块.对我来说,模块看起来很像单身人士.只有一个存在; 它可以在命名空间内的任何地方调用.

这里有什么我想念的吗?VB不支持单例结构的正常方式(私有构造函数/公共实例字段)吗?

Jar*_*Par 6

模块不是单身人士.它更类似于C#中的静态类.如果您反编译代码,您将看到它们具有非常相似的结构(模块具有额外的属性).

C#静态类和VB.Net模块之间的主要区别是......

  • 不必向模块中的方法添加静态/共享限定符.它们默认是共享的,您无法更改它
  • 如果模块位于导入的命名空间中,则其所有方法都可以无限制地使用.
  • C#中的静态类可以是通用的,模块不能(虽然它们可以有通用成员)