扩展My命名空间的功能
扩展My命名空间的功能
直接把类或模块放入My命名空间是个方便的方法,做法非常简单,只要将类或模块定义在My命名空间中即可,例如:
Namespace My Namespace My
Public Module Tools Module Tools
Public Sub DoSomething() Sub DoSomething()
‘Some code here
End Sub
End Module
End Namespace
然后就可以直接用My.Tools来访问自定义的模块,这种是将函数做成静态的,但所有的方法都做成静态毕竟不是最佳方法,所以资料推荐的做法是:首先我们要定义自定义类,可以放在任何地方,而不必放到My命名空间中,这样就可以避免类名直接显示在My关键字后。然后,在My命名空间下,定义一个带有
HideModuleNameAttribute的模块,名称可以随便起;最后在模块中设定访问自定义类实例的属性。
‘Namespace
My
<HideModuleName()>
_
Friend Module
MyCustomModule
Private syncRoot
As New Object
Private _tools As
ToolsProxy
”’ <summary>
”’ Contains my custom
tools.
”’ </summary>
Public ReadOnly Property Tools() As ToolsProxy
Get
‘Double check lock to ensure thread
safty.
If _tools Is Nothing
Then
SyncLock
syncRoot
If _tools Is Nothing
Then
_tools = New
ToolsProxy
End
If
End
SyncLock
End
If
Return
_tools
End
Get
End Property
End Module
有了HideModuleName这个Attribute,它本身就不会出现在My关键字后面,而它的属性则会显示。完成以后,你会发现My.Tools这次与Visual
Basic内置在My中的对象没有任何区别了。此方法为扩展My最佳的方法,推荐使用。
利用Partial关键字可以扩展My.Application或My.Computer的功能的。其对应的Class分别为MyApplication和MyComputer。