最好将函数放在VB.NET的模块或类中

|| 我在VB.NET中有一个名为Math.vb的模块,在该模块中,我创建了一个显示将一个数字的百分比返回另一个数字的函数。我有一个Sub调用函数,我从Form1类中调用Sub。将函数放在类或模块中是否有优点/缺点?     
已邀请:
        一切都取决于。 VB.net中的模块基本上与静态类相同,但是您不必在模块中使用“模块名称”作为方法名称的开头。 这使模块成为放置“ Utility”函数的好地方,这些函数具有非常通用的性质,并且与任何现有类都不相关。您的\“百分比\”函数可能适合此类别。 另一方面,如果要创建一个代表这些数字的类,则要为其计算百分比,而该类的一个方法就是该“百分比”函数,该函数将基于在类实例中定义的数字,然后,是的,我将函数放在了一个类中。 最后,如果仅从Form1类中调用Percentage函数才有意义,那么我将使其成为该类中的PRIVATE函数。 对于方法,通常希望应用最严格的范围。     
        模块不能实现接口或从另一个类继承。     
        我认为没有任何区别。模块本质上是一个共享每个成员的类。     
        问题是您应该将CallPercentage放在哪里。 首先,这是一个好问题吗?是的,这是一个很好的问题,因为在其中放置一段代码很重要。我认为OOP设计实际上是关于“如何组织代码”。 对于您的特定问题,我想,很可能您希望将其与Form1一起使用,如果它纯粹是为了满足Form1的功能。 但是,如果您认为它与百分比函数一样通用,并且在许多情况下会被调用,则可能需要将其放入模块中。通常,您希望避免频繁更改模块。 还有一个建议,因为VB.Net已经有了“ Math”,所以最好使用特定名称调用该模块,例如“ XiaMath”。     
        虽然我大体上同意drventure的回答。我只是想补充一点,这是我的经验,在我从事过任何时间的项目上,迟早有人会说“我知道,让我们做”或“让此dll移至Web服务!\”,然后执行此操作,您将需要构建一台计时机并返回到过去并扼杀编写math.vb模块的人,因为每一次一段时间后,它会给出错误的答案,而您却找不到原因。     

要回复问题请先登录注册