0

私は持っている

Function Bar(s As String) ...

関数を作成する必要があります

Me.Foo(myInt, AddressOf Bar)

Foo の署名はどのように書けばよいですか?

4

2 に答える 2

2

一般的な Func(Of Type) キーワードを使用するのがおそらく最も簡単です。

Public Function Foo(i As Integer, f As Func(Of String, Integer)) As String
    Dim i2 = f.Invoke("test")
    Return "42"
End Function
于 2012-07-23T15:53:26.063 に答える
1

これはあなたを助けるかもしれません

委任署名を宣言します。

Public Delegate Sub Format(ByVal value As String)

Test 関数を定義します。

Public Sub CheckDifference(ByVal A As Integer, _
                           ByVal B As Integer, _
                           ByVal format As Format)
    If (B - A) > 5 Then
        format.Invoke(String.Format( _
        "Difference ({0}) is outside of acceptable range.", (B - A)))
    End If
End Sub

コードのどこかで Test 関数を呼び出します。

CheckDifference(Foo, Bar, AddressOf log.WriteWarn)

または

CheckDifference(Foo, Bar, AddressOf log.WriteError)
于 2012-07-23T15:43:55.533 に答える