hallo miteinander
habe wiedermal eine Frage, und zwar geht es um dieser Codeausschnitt
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21:
| AsyncCallback callback = new AsyncCallback(ar => { long primeNumber = primeNumberDelegate.EndInvoke(ar);
this.Dispatcher.Invoke(DispatcherPriority.Normal, new Action(() => { this.lblInfo.Content = primeNumber.ToString(); this.btnCalculatePrimeNumber.IsEnabled = true; })); }); |
Hier wird ein Instanz von der Delegate AsyncCallback erzeugt.
Die Definition von den Delegate
C#-Quelltext
1:
| public delegate void AsyncCallback(IAsyncResult ar); |
Was ich nicht gewusst habe ist, dass man ein Delegate instanzieren kann. Das Argument ar, warum kann man hier ein Lambda Ausdruck zuweisen, obwohl der Typ definiert ist(IAsyncResult). IAsyncResult ist ein Interface, muss man nicht hier die Methode implementieren.
Da ich ein Anfänger bin, kenne ich nur einfache Bespiele für den Einsatz von Delegaten. Aber hier, ist so kompliziert.....
Gruss kostonstyle