| 

.NET C# Java Javascript Exception

4
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?
03.02.2012
muffi 1,4k 1 9
1 Antwort
1
Das ganze geht mittels Reflection:

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)

Return result
03.02.2012
Floyd 14,6k 3 9
1
Ich habe das Dim obj nur eine Zeile nach oben verschoben und vor Dim methodInfo den For Each-Befehl eingefügt und marschiert wunderbar. Danke!
muffi 03.02.2012

Stelle deine .net-Frage jetzt!
TOP TECHNOLOGIES CONSULTING GmbH