如何在 Class 中使用模块
How to use a Module in a Class
如其所说on msdn:
Both classes and modules are reference types that encapsulate the items defined within, but they differ in how items are accessed from other procedures.
如何在 Class 中使用模块?我将如何访问其成员并使用它们?
编辑 #1
我尝试以所有可能的方式访问此模块,
Dim memman as MemoryModule
但是它给我一个错误,模块 'MemoryModule' 不能用作类型。
根据您对问题的评论...
Dim memman as MemoryModule
这是不正确的。模块不是 classes,它们不能被实例化为对象。您基本上可以将模块视为 Shared
辅助函数的集合。您可以像访问任何其他 Shared
函数一样访问这些函数:
MemoryModule.SomeFunction()
因此,例如,如果您的模块如下所示:
Module MemoryModule
Sub PerformAnOperation()
' some function logic
End Sub
End Module
然后任何可以看到该模块的 class 都可以调用该函数:
MemoryModule.PerformAnOperation()
如果逻辑上你的 "memory module" 应该 是一个能够独立实例的对象,那么它不应该是 Module
。相反,您希望将其设为 Class
并使用实例成员而不是 Shared
成员来实现它。根据代码所代表的逻辑和概念来构建代码很重要。
如其所说on msdn:
Both classes and modules are reference types that encapsulate the items defined within, but they differ in how items are accessed from other procedures.
如何在 Class 中使用模块?我将如何访问其成员并使用它们?
编辑 #1 我尝试以所有可能的方式访问此模块,
Dim memman as MemoryModule
但是它给我一个错误,模块 'MemoryModule' 不能用作类型。
根据您对问题的评论...
Dim memman as MemoryModule
这是不正确的。模块不是 classes,它们不能被实例化为对象。您基本上可以将模块视为 Shared
辅助函数的集合。您可以像访问任何其他 Shared
函数一样访问这些函数:
MemoryModule.SomeFunction()
因此,例如,如果您的模块如下所示:
Module MemoryModule
Sub PerformAnOperation()
' some function logic
End Sub
End Module
然后任何可以看到该模块的 class 都可以调用该函数:
MemoryModule.PerformAnOperation()
如果逻辑上你的 "memory module" 应该 是一个能够独立实例的对象,那么它不应该是 Module
。相反,您希望将其设为 Class
并使用实例成员而不是 Shared
成员来实现它。根据代码所代表的逻辑和概念来构建代码很重要。