Indirekter Function-Aufruf über einen Delegaten
Posted: Thu Feb 28, 2019 8:27 am
Hallo Zusammen,
Ich würde gerne eine Art "Funktionsaufruftabelle" implementieren, damit ich Functions über ein Dictionary und einen Schlüssel indirekt aufrufen kann. In C# gibt es dafür Delegaten und die Invoke()-Methode.
In X# habe ich es leider noch nicht geschafft, da ich noch kein Pendant zur Invoke()-Methode gefunden habe.
Hier ist mein kleines Beispiel:
Meine Frage ist: Wie ich kann ich eine Function über einen Delegaten ausführen?
In der Doku bzw. dem Helpfile habe ich dazu nichts gefunden.
Danke schon einmal im Voraus für einen Tipp und viele Grüße,
Peter
Ich würde gerne eine Art "Funktionsaufruftabelle" implementieren, damit ich Functions über ein Dictionary und einen Schlüssel indirekt aufrufen kann. In C# gibt es dafür Delegaten und die Invoke()-Methode.
In X# habe ich es leider noch nicht geschafft, da ich noch kein Pendant zur Invoke()-Methode gefunden habe.
Hier ist mein kleines Beispiel:
Code: Select all
Delegate funDel() As String
FUNCTION f1 As string
return "Bewölkt"
FUNCTION f2 As string
return "Sonne"
FUNCTION f3 As string
return "Regen"
FUNCTION Start() AS VOID STRICT
Local funDic AS Dictionary<int, delegate>
Local f1del As funDel
Local f2del As funDel
Local f3del As funDel
f1Del := funDel{f1}
f2Del := funDel{f2}
f3Del := funDel{f3}
funDic := Dictionary<int, delegate>{}
funDic:Add(1, f1del)
funDic:Add(2, f2del)
funDic:Add(3, f3del)
Local z as int
Local rnd As Random
rnd := Random{}
z := 1
Local vorhersage as Delegate
vorhersage := funDic[z]
Local wetter as string
wetter := vorhersage
Console.WriteLine("Die Wettervorhersage für heute: {0}", vorhersage)
Console.ReadKey()
In der Doku bzw. dem Helpfile habe ich dazu nichts gefunden.
Danke schon einmal im Voraus für einen Tipp und viele Grüße,
Peter