将函数放入VB.NET中的模块或类中是否更好?

时间:2011-03-16 21:26:15

标签: vb.net

我在VB.NET中有一个名为Math.vb的模块,在该模块中,我创建了一个显示的函数,返回一个数字与另一个数字的百分比。我有一个调用函数的Sub,我从Form1类调用Sub。将函数放在类或模块中是否有优点/缺点?

5 个答案:

答案 0 :(得分:4)

一切都取决于。 VB.net中的模块与静态类基本相同,但您不必在模块中使用“模块名称”作为方法名称。

这使得模块成为放置“实用程序”函数的好地方,这些函数具有非常通用的性质,并且与任何现有类无关。您的“百分比”功能可能适合此类别。

另一方面,如果你要创建一个代表那些数字的类,你正在计算百分比,并且该类的一个方法将是这个“百分比”函数,那将返回基于的百分比在类实例中定义的数字,然后,是的,我将函数放在一个类中。

最后,如果Percentage函数只对从Form1类调用是有意义的,那么我会在该类中使它成为一个PRIVATE函数。

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

答案 1 :(得分:2)

模块无法实现接口或从其他类继承。

答案 2 :(得分:0)

我认为没有任何不同之处。模块本质上是每个成员共享的类。

答案 3 :(得分:0)

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

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

对于您的具体问题,我想,很可能,如果它纯粹为Form1的功能提供服务,那么您希望将它与Form1一起使用。 但是如果你认为它与百分比函数一样通用,并且在很多情况下会被调用,你可能想把它放在模块中。通常,您希望模块不会频繁更改。

还有一个建议,因为VB.Net已经有了“Math”,你最好用一个特定的名称来调用模块,比如“XiaMath”。

答案 4 :(得分:-1)

虽然我大多同意Drventure的回答。我只是想补充说,这是我的经历,在任何项目中,我曾经历过任何时间长短,迟早有人会说“我知道,让我们做线程!”或者“让我们将这个dll移动到Web服务!”在你这样做之后,你会想要建立一个时间机器并且回过头来扼杀那个编写math.vb模块的人,因为每隔一段时间,它会吐出错误的答案,你无法弄清楚为什么