Могу ли я сделать указатель на функцию экземпляра, когда еще не объявлен экземпляр? Прямо сейчас я использую рефлексию для вызова своих методов, но, похоже, это проще с делегатом. Я просто не могу понять. Методы, которые я буду вызывать, всегда будут возвращать один и тот же тип и не будут иметь никаких параметров.. Указатель функции экземпляра.
Вот некоторые примеры кода, чтобы проиллюстрировать то, что я пытаюсь сделать:
Private Shared Function A() As Object
Return Lauch(????) ' should call FunctionA of the instance (undeclared here)
End Function
Private Shared Function B() As Object
Return Lauch(????) ' should call FunctionB of the instance (undeclared here)
End Function
Private Shared Function Lauch(Of T)(ByVal instanceFunc As Func(Of T)) As Object
' long and repetitive operations that I don't want to repeat in function A and B
Dim myInstance As New MyClass()
Return myInstance.instanceFunc()
End Function
Прямо сейчас я делаю что-то вроде следующего, и она работает, но я чувствую, что должен быть лучший способ:
Private Shared Function A() As Object
Return Lauch("FunctionA")
End Function
Private Shared Function B() As Object
Return Lauch("FunctionB")
End Function
Private Shared Function Lauch(ByVal instanceFunc As String) As Object
' long and repetitive operations that I don't want to repeat in function A and B
Dim myInstance As New MyClass()
Return myInstance.GetType().GetMethod(instanceFunc).Invoke(myInstance, Nothing))
End Function
Я бы никогда не придумал это! Спасибо, мне придется отлаживать это еще раз, чтобы действительно понять, что там происходит. – ChG