Autor Beitrag
lapadula
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 180
Erhaltene Danke: 10



BeitragVerfasst: Do 29.09.16 20:33 
Hallo, kann mir jemand simple erklären was delegates genau tun?
Soviel ich weiß ist das nur eine Referenz auf eine oder mehrere Methoden. Oder liege ich falsch?

Wie ist man vor Erfindung der delegates vorgegangen, also welches Problem lösen delegates?
Palladin007
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1282
Erhaltene Danke: 182

Windows 11 x64 Pro
C# (Visual Studio Preview)
BeitragVerfasst: Do 29.09.16 21:02 
Delegaten sind Typen, Referenz-Typen.
Sie beschreiben die vollständige Signatur einer Methode
Damit kannst Du dann eine Methode als variable speichern, Parameter übergeben, etc.
Du arbeitest dann mit der Referenz zu einer Methode.

Bei Java gibts dafür meines Wissens nach nur Interfaces mit sowas wie einer Run-Methode.
Da man in Java ein Interface aber auch inline implementieren und davon direkt eine Instanz erzeugen kann, funktioniert das als Ersatz für Delegaten.

Unter C++ kannst Du dir für eine Methode den Pointer geben lassen und den dann als Variable umher reichen.

Das machen Delegates einfacher. Du kannst sehr einfach eine feste Definition für eine Methode fest legen, ihr einen Namen verwenden und so definieren, was für eine Methode als Parameter erwartet wird.
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4764
Erhaltene Danke: 1052

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Fr 30.09.16 08:59 
Hallo,

du kannst dir auch mal den Wiki-Artikel Rückruffunktion (engl. "callback function") durchlesen, welcher die Grundlage für die Delegates bildet. Die .NET Delegates (erzeugt durch das Schlüsselwort delegate) basieren intern sogar auf der Klasse MulticastDelegate, d.h. man kann sogar mehrere Methoden daran binden (u.a. Grundlage für die Ereignisse).
lapadula Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 180
Erhaltene Danke: 10



BeitragVerfasst: Do 13.10.16 08:35 
Okay, sind also wie die Interfaces eine Art Schablone, so verstehe ich das jetzt.