2010-04-29 58 views
3

我在我的VB.NET程序中有一个Util模块,它具有项目范围的方法,如日志记录和属性解析。我工作的一般做法似乎是直接调用这些方法,而不用在Util前加前缀。当我刚接触VB时,花了一段时间才弄清楚这些方法/函数来自哪里。因为我现在使用自己的Util方法,所以我不禁想到在每个方法调用之前添加Util.(您立即知道它是用户定义的但不在当前类中,以及在哪里可以找到它),甚至更长。调用VB模块的过程/函数时的一般做法是什么?我们应该用模块名称加前缀吗?在VB.NET中直接调用模块函数是不是很好的做法?

回答

2

智能感知(和“Goto Definition”)应该使找到事物的位置变得微不足道,但为了清晰阅读,我总是以更好的名称空间开头。那么很明显,这是一个自定义函数,而不是您正在使用的类中内置或本地的东西。

也许我错过了一个微妙的区别,但我倾向于使用共享类而不是模块来处理常见和自包含的任何代码 - 它似乎更容易跟踪我,并且还会执行因为你不能从任何地方调用它而不给它命名空间来调用它。

+0

您需要扩展方法模块,但除此之外,我避免它们并使用共享类。 – 2010-04-29 14:49:30

+0

“转到定义”,毫无疑问。这是一个简单的功能,它允许我们使用Imports语句并调用Module方法,保证我们不必再考虑方法的起源。 +1。 – 2010-04-30 03:37:59

1

为了便于阅读,我通常会将共享函数的完整名称空间。

Call MyNameSpace.Utils.MySharedFunction() 
1

Util是一个这样的通用名称。

来自.Net框架的示例。您有System.Web.HttpUtility.UrlEncode(...)。通常您将其称为HttpUtility.UrlEncode,因为您在顶部有一个导入声明。

具有静态工具方法的类的名称应该是可读和可解释的。这是很好的做法。如果你有很好的类名,它们也可以驻留在一个Utils命名空间中,但是类名不应该是Utils

将所有日志记录在Logger类中。你所有的字符串都在StringUtils类中,等等。尽量保持类名尽可能具体,并且我宁愿有更多的功能少于其他类的类。

+0

同意,但这是一个非常小的临时项目,Util类中只有很少的方法,这就是他们希望实现的方法。对于稍大或更长的任何事情,我们肯定会模块化它更多 – froadie 2010-04-29 14:49:03

+0

我仍然会将Utils类重命名为它实际上用于实用程序的类。如果它是两件事,即使它很小,也要带两班。在某个时间点,有人会添加一个函数,并将其粘贴在Utils中,并且它将会增长,增长并增长:)大问题是,如果我们允许自己跳过最佳实践时,它只是一个小小的临时事情?如果代码在一段时间内被删除并且再也没有碰过,我会说是。但今天知道这件事有多容易? – 2010-04-29 14:53:41

相关问题