VB中的类与模块

时间:2010-04-15 14:48:59

标签: vb.net class module

使用模块而不是VB中的类有什么优势?它们有何不同,使用模块有哪些优点/缺点?在VB或VB.NET中,我使用它们。

3 个答案:

答案 0 :(得分:7)

(A) Modules

(B)只有Shared函数的类

解决同样的问题:两者都允许您逻辑分组一组功能。

使用模块的优点:

  • 它允许您定义extension methods
  • 对于阅读代码的人来说,很明显这不是代表一组有状态对象的类,而只是一个“函数容器”。

使用具有共享功能的类的优点:

  • 稍后可以使用实例(=非共享)变量,函数和属性对其进行扩展。

因此,如果您正在编写一组辅助函数并希望对它们进行逻辑分组(此组的 state 的概念没有意义),请使用模块 - 这正是他们在这里的目的。另一方面,如果您有一个概念上适合已有类的函数,请将其作为共享函数添加到该类中。

答案 1 :(得分:1)

主要区别在于模块中的方法可以全局调用,而类中的方法则不能。因此,您只需拨打ModuleName.MyMethod(),而不是MyMethod()。这是优势还是劣势取决于具体情况。

答案 2 :(得分:0)

模块来得早,现在VB.NET只是为了向后兼容。模块和类几乎相同。您可以直接调用Module.Function(),因为它在类中视为Shared函数。您可以定义Shared函数/方法的类,另外还可以创建类似Dim c as Class = New Class()的实例。

避免使用Module,而是使用Class。编写更好的OOP编程对你有好处。