创建委托以使用参数传递函数(.net 2.0)

原谅我,如果这是记录在某处,但是有没有什么好的方法来创建一个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)? 还是有一些内置的支持来做到这一点?

链接地址: http://www.djcxy.com/p/52787.html

上一篇: Creating delegate to pass function with parameters (.net 2.0)

下一篇: Why is it bad to use an iteration variable in a lambda expression