Ich habe eine Routine, mit der ich einige (nicht alle) Funktionen einer Klasse ausführe. Um gleich die Intension zu sagen: diese Routine ist im Wesentlichen zum Testen da, um die Funktion mit dem besten Ergebnis zu suchen. Da das Ganze inzwischen ein ziemlicher Spaghetti-Code geworden ist, habe ich folgendes vor:
'Pseudocode Dim func() as String = {"func1","func2","func3"} Dim cls as New klasse For Each fkt In func Debug.print(cls.fkt(parameter1,parameter2)) Next
Ich möchte also in dem Stringarray (das kann von mir aus auch eine Liste sein) die Funktionsnamen speichern und dann in der Klasse aufrufen. Die Parameterliste ist dabei immer gleich. Geht das irgendwie?
Dim t As Type = GetType(Functions) 'Die Klasse die deine Funktionen enthällt Dim methodInfo As Reflection.MethodInfo = t.GetMethod("func1") 'Name der Methode hier einsetzten Dim obj As Object = Activator.CreateInstance(t)
Dim result As String result = methodInfo.Invoke(obj, Nothing)