Autor Beitrag
Felix2000
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 124



BeitragVerfasst: Di 09.08.11 11:37 
Hi Folks !

kann mir das vielleicht jemand von euch erläutern und kann man diese Delegaten in Kombination mit anonymen Klassen in C# verwenden?

Greetz
Felix
dark-destination1988
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 178
Erhaltene Danke: 21



BeitragVerfasst: Di 09.08.11 16:22 
soweit ich weiss werden diese genutzt um ungültige Steuerelement zugriffe zu verhindern. Wenn du beispielsweise einen thread hast und dieser soll eine Textbox.Text verändern, so funktioniert dies nicht "Ungültiger Threadübergreifender Zugriff" (oder so ähnlich), das passiert bei delegaten nicht
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4799
Erhaltene Danke: 1059

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Di 09.08.11 16:41 
Oh, oh - 2 völlig Unwissende ;-)

Ein Delegate ist nichts anderes als eine Methodensignatur, d.h. es bestimmt den Rückgabewert sowie die Parameter, z.B.
ausblenden C#-Quelltext
1:
delegate int MyDelegate(string s, bool b);					


Sobald nun eine Methode ein Delegate als Parameter hat, z.B.
ausblenden C#-Quelltext
1:
void DoSomething(MyDelegate del)					

kann man diese Methode nun mit jeder Methode als Parameter aufrufen, die dieselbe Signatur (*) wie der Delegate haben.

Um nun eine Methode als Parameter zu übergeben gibt es mehrere Möglichkeiten:
1. eine benannte Methode
2. eine anonyme Methode
3. ein Lambda-Ausdruck


(*) Erweiterte Stichworte sind Kovarianz und Kontravarianz (Co- and Contravariance), so daß auch ähnliche Methoden übergeben werden können...