使用模块而不是VB中的类有什么好处?它们有何不同,以及使用模块有哪些优点/缺点?在VB或VB.NET中,我使用两者。VB中的类与模块的比较
2
A
回答
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编程是有好处的。
相关问题
- 1. 比较在类列表-VB
- 2. numpy模块阵列与列表比较
- 3. 扩展模块中的可比较类型
- 4. 比较数据行中的值VB
- 5. 比较VB中的字符串6.5
- 6. 比较Oracle Forms模块
- 7. 与int类比较
- 8. 字符串比较与目标C中的类比较-C
- 9. 模板类中的比较器
- 10. 用于文本比较的Perl模块
- 11. Hadoop输入拆分与块的比较
- 12. ASP.NET VB比较3日期
- 13. UMDF了解与Linux内核模块/驱动程序的比较
- 14. 单个NgModule与Angular 2的多个模块相比较
- 15. 的CakePHP中可容纳:模型“比较”是不是与模型“比较”相关
- 16. 在Ruby中包含与扩展和可比较模块
- 17. .Net模式与GOF的比较
- 18. 与EMF的EMF模型比较
- 19. Haskell中的类型比较
- 20. VB.NET中的类型比较
- 21. Python中的“类型比较”
- 22. 与Scala的数字类型比较?
- 23. 如何比较类似的XML与PHPUnit?
- 24. Qt:Qt类与标准C++的比较
- 25. 如何比较unicode类型与中文python中的str类型?
- 26. 如何比较模型中的变化与模型(django)
- 27. 使用Python中的日期时间模块比较时间
- 28. 将模型中的值与视图中的值进行比较
- 29. 模块#包含和模块#扩展和模块#前置比较讨论
- 30. angularjs中的模块与filter.js类似
看到此复制:http://stackoverflow.com/questions/881570/classes-vs-modules-in-vb-net – Kamarey 2010-04-15 14:55:33
它没有回答我的问题。我确实看到它,谢谢。 – 2010-04-15 14:57:35
阅读完之后,您的问题还剩下什么?请更具体一些,因为你的问题听起来很像那个。 – 2010-04-15 17:31:48