【问题标题】:Class vs. Module in VBVB 中的类与模块
【发布时间】:2011-02-08 10:25:16
【问题描述】:

在 VB 中使用模块而不是类有什么好处(如果有的话)?它们有何不同,使用模块有哪些优点/缺点?在 VB 或 VB.NET 中,我都使用了。

【问题讨论】:

  • 它没有回答我的问题。不过我确实看到了,谢谢。
  • 读完之后你的问题还剩下什么?请更具体一些,因为您的问题听起来很像那个问题。
  • 我还创建了具有相同输出的模块和类。可以使用类而不是模块,这取决于每个程序员的口味。如果您想了解我的基本示例代码,可以访问我的网站。只需点击here!希望你能欣赏它!谢谢..我想分享这个。如果你喜欢,请给我评论并分享你对 vb.net 所做的一切。再次感谢!
  • 查看 YouTube 上的以下播放列表,它解释了类和对象。 youtube.com/playlist?list=PL3FEE93A664B3B2E7&feature=plcp

标签: vb.net class module


【解决方案1】:

(A) 模块

(B) 只有Shared 函数的类

解决同样的问题:两者都允许您在逻辑上分组一组函数。

使用模块的优点:

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

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

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

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

【讨论】:

    【解决方案2】:

    一个主要的区别是模块中的方法可以被全局调用,而类中的方法不能。所以你可以打电话给MyMethod(),而不是ModuleName.MyMethod()。这是优点还是缺点取决于具体情况。

    【讨论】:

    • 您可以避免使用Imports ClassName 输入ClassName.SharedMethodName,然后您只需输入SharedMethodName
    【解决方案3】:

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

    避免使用模块,而是使用类。写一个更好的OOP编程对你有好处。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-11-21
      • 1970-01-01
      • 2010-10-27
      • 1970-01-01
      • 2011-10-18
      • 2013-06-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多