2

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)
4

2 に答える 2

2

モジュール名を指定するように強制する方法がある場合、それが何であるかはわかりません。ただし、それを行う方法は、モジュールではなく、共有メンバーを持つクラスにすることです。例えば:

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
于 2013-02-12T19:11:01.037 に答える
2

この動作は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)
于 2015-11-04T15:20:55.353 に答える