什么时候使用 vb.net 模块是个好主意

发布于 2024-10-12 02:23:47 字数 110 浏览 2 评论 0原文

我的一些同事广泛使用 VB.net 的模块概念。不幸的是,我就是不“明白”。我认为使用模块比共享类没有任何好处。我错过了什么吗?什么时候最好使用模块?或者我(正如我经常用这种语言所做的那样)“只是不明白”?

Some of my co-workers make extensive use of the VB.net concept of Modules. Unfortunately, I just don't 'get it'. I see no benefit in using modules over shared classes. Am I missing something? When would it be preferable to use a module? Or am I (as I do quite often in this language) 'just not getting it'?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

撕心裂肺的伤痛 2024-10-19 02:23:47

在 VB.net 中,模块是共享类。当它们被编译时,它们被赋予一个私有构造函数和设置为共享的方法。

有时,编译器会强制您使用模块(与 C# 中的静态类相同),例如无法在 VB.Net 类中创建的扩展方法。

通过为辅助方法使用模块,您可以更轻松地稍后将它们转换为扩展方法,并限制其他人添加任何实例方法或构造函数。

也就是说,它们是 VB6 的后遗症,VB6 不支持完整的 OO 编程,并且除了独立的辅助方法之外,它们不会被广泛使用。

In VB.net a module is a shared class. When they are compiled they are given a private constructor and methods set to shared.

There are some times when you are forced to use modules by the compiler (in the same way static classes are in C#) such as for extension methods which can not be created in side a VB.Net class.

By using modules for your helper methods you will make it easier to convert them over to extension methods later and restrict others from adding any instance methods or constructors.

That said they are a hang over from VB6 that did not support full OO programming and beyond standalone helper methods they would not widely be used.

无人问我粥可暖 2024-10-19 02:23:47

模块本质上与共享类相同。主要区别在于,在模块中,不需要所有额外的“共享”,因为所有内容都是隐式共享的。如果您没有实例数据并且只是使用类作为函数的一种命名空间,那么最好使用模块(IMO)来代替并明确这一点。

A module is essentially the same as a shared class. The major difference is that in a module, there's no need for all the extra "shared"s, cause everything's implicitly shared. If you have no instance data and are just using the class as a kind of namespace for functions, then it's a better idea (IMO) to use a module instead and make that clear.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文