创建委托以传递带参数的函数(.net 2.0)

时间:2010-08-31 22:06:29

标签: vb.net delegates

请原谅我,如果这是在某处记录的,但是有没有很好的方法来创建一个MethodInvoker,它将使用指定的参数执行指定的函数(在创建MethodInvoker时捕获参数值)?我有时通过使用包装器类来完成任务,但想知道这是否是最好的方法。我应该这样做:

Class Invoker(Of T)
    ReadOnly Param1 As T
    ReadOnly Act As Action(Of T)
    ReadOnly execDelegate As New MethodInvoker(AddressOf execProc)
    Private Sub New(ByVal param1 As T, ByVal act As Action(Of T))
        Me.Param1 = param1
        Me.Act = act
    End Sub
    Private Sub execProc()
        Act(Param1)
    End Sub
    Shared Function Create(ByVal param1 As T, ByVal act As Action(Of T)) As MethodInvoker
        Dim newAction As New Invoker(Of T)(param1, act)
        Return newAction.execDelegate
    End Function
End Class

并使用例如“myMethodInvoker = Invoker(Of Integer).Create(6,AddressOf MyRoutine)”创建一个委托,当被调用时,会调用MyRoutine(6)?或者是否有一些内置的支持呢?

0 个答案:

没有答案