代码之家  ›  专栏  ›  技术社区  ›  Arlen Beiler

VB中的类与模块

  •  2
  • Arlen Beiler  · 技术社区  · 14 年前

    如果有的话,在VB中使用模块而不是类有什么好处?它们有什么不同,在使用模块方面有哪些优点/缺点?在vb或vb.net中,两者都使用。

    3 回复  |  直到 14 年前
        1
  •  7
  •   Heinzi    14 年前

    (a) 模块

    (b) 只包含 Shared 功能

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

    使用模块的优点:

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

    使用具有共享函数的类的优点:

    • 很容易用 实例 (=非共享)变量、函数和属性。

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

        2
  •  1
  •   Arlen Beiler    14 年前

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

        3
  •  0
  •   CallMeLaNN    14 年前

    模块更早出现,现在vb.net只允许它向后兼容。模块和类几乎相同。您可以直接调用module.function(),因为它被视为 Shared 类中的函数。可以定义的类 共享 函数/方法,另外还可以创建类似 Dim c as Class = New Class() .

    避免使用模块,而使用类。编写一个更好的OOP程序对您很好。