2011-03-16 44 views
0

我在VB.NET中有一个名为Math.vb的模块,并且在该模块中,我创建了一个显示返回一个数字到另一个数字的百分比的函数。我有一个调用函数的Sub,我从我的Form1类中调用Sub。将该功能放入课堂或模块中是否有优势/劣势?在VB.NET中将函数放入模块或类中更好吗

回答

4

这一切都取决于。 VB.net中的模块基本上与静态类相同,但是您不必在具有“模块名称”的模块中添加前缀方法名称。

这使得模块成为一个很好的地方,可以放置具有非常通用性并且与任何现有类无关的“实用工具”功能。您的“百分比”功能可能适合此类别。另一方面,如果要创建一个代表这些数字的类来计算其百分比,并且该类的一个方法将成为此“百分比”函数,那么将返回基于百分比的百分比关于在类实例中定义的数字,那么,是的,我会把这个函数放在一个类中。

最后,如果百分比函数只能从Form1类调用,那么我会在该类中使其成为PRIVATE函数。

对于方法,您通常希望应用可能的最严格范围。

0

我不认为有任何区别。模块本质上是一个类,其中每个成员都是共享的。

2

模块不能实现接口或从另一个类继承。

0

问题是你应该把CallPercentage放在哪里。

首先,这是一个很好的问题吗?是的,这是一个非常好的问题,因为重要的是你放置了一段代码。我认为OOP设计实际上是关于“如何组织它”。

对于您的具体问题,我想很可能您希望将其与Form1放在一起,如果它纯粹服务于Form1的功能。 但是,如果您认为它与百分比函数一般,并且在很多情况下会被调用,您可能需要将其放入模块中。通常情况下,您希望保持模块免受频繁更改。

还有一个建议,既然VB.Net已经有了“数学”,你最好用一个特定的名字来调用模块,比如“XiaMath”。

-1

虽然我主要同意drventure的回答。我只想补充一点,这是我的经历,就我曾经参加过的任何一段时间的项目而言,早晚有人会说“我知道,让我们做线程吧!”或者“让我们把这个DLL移到一个web服务!”在你做完它之后,你会想要建立一个时间机器并及时回顾并扼杀编写math.vb模块的人,因为每隔一段时间,它就会吐出错误的答案,并且你不知道为什么。

相关问题