VB.net允许您使用模块名称跳过函数调用的限定:
Public Module EvalDataFetcher
Public Function JoinStr(ByVal values As IEnumerable(Of String)) As String
' body
End Function
End Module
然后做:
Dim foo As String = JoinStr(myBars)
如何强制用户使用完全限定的表单?即力:
Dim foo As String = EvalDataFetcher.JoinStr(myBars)
答案 0 :(得分:1)
如果有办法强制你指定模块名称,我不确定它会是什么。但是,你这样做的方法是使它成为一个具有共享成员而不是模块的类。例如:
Public Class EvalDataFetcher
Public Shared Function JoinStr(ByVal values As IEnumerable(Of String)) As String
' body
End Function
End Module
现在,当您调用JoinStr
方法时,您将被迫指定类名:
Dim foo1 As String = JoinStr(myBars) ' Won't compile
Dim foo2 As String = EvalDataFetcher.JoinStr(myBars) ' Works
答案 1 :(得分:1)
使用HideModuleName
属性作为解决方法 - HideModuleNameAttribute,可以实现此行为
使用命名空间包装模块并将HideModuleName
属性添加到模块
Namespace Utils
<HideModuleName()>
Friend Module UtilsModule
Public Sub YourMethod(parameter As Object)
'Method code
End Sub
End Module
End Namespace
如果名称空间不会与文件中的Imports
一起添加,那么
您需要使用命名空间名称,HideModuleName
属性将隐藏intellisense中的模块名称
Utils.YourMethod(param)