2010-04-15 59 views
2

使用模块而不是VB中的类有什么好处?它们有何不同,以及使用模块有哪些优点/缺点?在VB或VB.NET中,我使用两者。VB中的类与模块的比较

+0

看到此复制:http://stackoverflow.com/questions/881570/classes-vs-modules-in-vb-net – Kamarey 2010-04-15 14:55:33

+0

它没有回答我的问题。我确实看到它,谢谢。 – 2010-04-15 14:57:35

+1

阅读完之后,您的问题还剩下什么?请更具体一些,因为你的问题听起来很像那个。 – 2010-04-15 17:31:48

回答

7

(A)模块

(B)类仅Shared功能

解决同样的问题:两个允许你逻辑一组功能。使用一个模块的

优点:

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

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

  • 可以很容易地将其与实例延伸(=非共享)的变量,函数和属性以后。

所以,如果你正在写一组辅助功能,并希望在逻辑组他们(其中该基团的状态的概念只是没有意义),使用一个模块 - 这是正是他们在这里。另一方面,如果你有一个概念上适合已经存在的类的函数,把它作为共享函数添加到该类中。

1

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

+0

您可以避免必须使用'Imports ClassName'键入'ClassName.SharedMethodName',那么您只需键入'SharedMethodName' – 2011-08-08 09:04:25

0

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

避免使用模块,而改为使用Class。对你来说编写一个更好的OOP编程是有好处的。