Создание делегата для передачи функции с параметрами (.net 2.0) - PullRequest
1 голос
/ 01 сентября 2010

Простите, если это где-то задокументировано, но есть ли хороший способ создать 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)? Или есть какая-то встроенная поддержка для этого?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...