Hallo ich habe mal wieder ein kleines Problem. Ich habe eine Klasse, die auf ShortCuts reagiert. Nun möchte ich gern mein Aufruf der Klasse die Proceure/Funktion mitgeben die beim Auslösen eines ShortCuts ausgeführt werden soll.
Wie muss die Procedure/Funktion definiert werden, und als was für einen Parameter kann ich die übergen?
Wiedermal besten Dank im voraus ...
Danke für Deine Antwort, dass mit den Delegaten habe ich noch nicht gemacht, werde mal danach suchen oder hast Du ein Beispiel?
wobei ich seit 2005 der Ansicht bin, selbst definierte Delegaten sind obsolet.
Man kann fast jede Signatur mit den vorgefertigten generischen Delegaten Action<T> (und verwandte) implementieren (seit 2008 zusätzlich auch Func<T1, T2> und verwandte)).
Der Delegat für eine void Methode, die einen String und einen Integer erwartet, sähe so aus:
Action<string, int> myDelegate = myFunction;
Dann muß myFunction natürlich die Signatur aufweisen
private void myFunction(string arg1, int arg2){...}
Den zugewiesenen Delegaten kannstedann aufrufen, wie die Methode selbst:
myDelegate("Hallo", 5);
Sorry JAck30lena, dassich jetzt schon das ganze Tut hingeschrieben hab, wie gesagt, das übliche Vorgehen, wies glaub noch inne Bücher steht, findich halt meist suboptimal 😉
@kkirchhoff: Jetzt aber trotzdem mindestens inne MSDN nachgugge, was da unterm Stichwort delegate geboten wird.
Zum Umgang mit MSDN gugge auch Möglichkeiten der Informationsgewinnung
Der frühe Apfel fängt den Wurm.
Bin irgendwie nicht so der Fan von vorgefertigten Delegaten. Lässt sich besser lesen wenn man einen Delegat hat der zb. "UpdateFormDelegate(..)" heisst und nicht "Action<Form>(..)". Von daher würde ich selbst definierte Delegaten nicht als Oboslet abstempeln.
Religionskriege sind Konflikte zwischen erwachsenen Menschen, bei denen es darum geht, wer den cooleren, imaginaeren Freund hat
siehste, und ich bevorzuge generische, weilichda inne Benutzung die Signatur drinne hab:
private Action<string, int>_UpdateDelegate;
private UpdateDelegate _UpdateDelegate;
Wennich für letzteren Delegaten eine Methode schreibe, mussich erstmal die UpdateDelegate - Deklaration aufsuchen, und nachgucken, welche Signatur gefordert ist.
Der frühe Apfel fängt den Wurm.
Stimmt ErfinderDesRades, ne sehr gute Begründung das generisch zu definieren.
Again what learned...