Classes vs. Modules in VB.NET在VB.NET中的类和模块

10 浏览
0 Comments

Classes vs. Modules in VB.NET在VB.NET中的类和模块

在VB.NET中,使用模块代替具有共享成员函数的类是否被认为是可接受的做法?

我倾向于避免使用模块,因为它们感觉像是从Visual Basic 6.0遗留下来的残留物,而且似乎不再适合使用。另一方面,使用模块和只有共享成员的类之间似乎没有太大的区别。虽然我很少有实际需要使用这两者的情况,但有时它们提供了一个简单的解决方案。

我很想听听您对此是否有任何意见或偏好。

admin 更改状态以发布 2023年5月21日
0
0 Comments

我认为,除非将模块放入单独的命名空间中,否则最好避免使用模块。因为在Intellisense中,模块中的方法将在该命名空间中的每个地方可见。

因此,不是使用ModuleName.MyMethod(),而是出现MyMethod()弹出窗口,并且这种做法在编程级别上无效,这也使得封装失效。

这就是为什么我总是尝试创建具有共享方法的类,因为这看起来要好得多。

0
0 Comments

Module模块是VB对C# static静态类的对应物。当您的类仅设计为辅助函数和扩展方法,并且您想允许继承实例化时,可以使用Module

顺便提一下,使用Module并不真的是主观的,也不是已被废弃的。事实上,当适当使用Module时,您必须使用它。 .NET Framework本身在许多时候使用它(例如System.Linq.Enumerable)。声明扩展方法时,需要使用Module

0