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