小技巧:在VB中使用Module模拟C#的静态类

VB中建立助手类一般有两种方法,一是使用Module,另一个是用Class然后把成员全部声明为Shared。

不过这两种方法都有缺点,第一种方法由于VB的特性会污染命名空间;第二个需要显式声明Shared,如果以后要把代码转换到实例方法会很麻烦。(还有个问题是我经常忘记加,在调用成员失败的时候才想起来。。。)

最近发现了一个很简单的方法,能把两者的优点结合起来,范例:

   1:  

   2: Namespace Utils

   3:     <HideModuleName()> _

   4:     Module Utils

   5:         Public Sub XXX()

   6:             ' ...

   7:         End Sub

   8:     End Module

   9: End Module

  10:  

  11: ' 使用方法时Import ExcelUtils的上层命名空间即可

  12: Utils.XXX()

HideModuleName属性使VS的Intellisense在显示Utils命名空间的时候不显示类名,这样这个命名空间里面就只有Utils类的成员了,间接实现了静态类的效果。

Leave a Reply

Your email address will not be published. Required fields are marked *