Delegates
Delegates
Dus een afgevaardigde in C# is iets dat bevoegd is om anderen te vertegenwoordigen en kan voor dit doel worden uitgezonden. Wat is dat iets wat in C# vertegenwoordigd wordt? Welnu, in C# is dat een methode (functie). De methode is ergens gedefinieerd. Ze kan deel uitmaken van een object of ze is misschien gewoon een static methode. Als de methode een externe vertegenwoordiging nodig heeft, gebruiken we in C# een delegate. De delegate kan ergens ver weg van de vertegenwoordigde methode worden uitgestuurd, maar als het nodig is, kan de delegate gemakkelijk beroep doen op de methode, ongeacht hoe ver ze van elkaar verwijderd zijn.
Dat een object als een parameter aan een functie kan worden meegegeven, daar kijken we niet van op. Dat zijn we gewoon. Maar wat te denken van een methode? Kan een methode / functie worden meegegeven als een parameter? Niet direct, nee.
Maar (en dit is een kracht van een delegate) zijn delegate (afgevaardigde) kan in de plaats van de methode zelf worden meegegeven.
Delegates hebben de volgende eigenschappen:
- delegates zijn net als C ++ functie pointers, maar zijn type-safe;
- met delegates kunnen methoden worden doorgegeven als parameters;
- met deelnemers kunnen callback-methoden gedefiniëerd worden;
- delegates kunnen aan elkaar worden geketend; zo kunnen meerdere methoden worden opgeroepen voor één enkele event;
Bronnen
- Delegates in C# - Attempt to look inside. Part 1 - How to understand and use delegates in your program.
- Delegates in C# - Attempt to look inside. Part 2 - Call delegates asynchronously if you need.
- Delegates in C# - Attempt to look inside. Part 3 - More about delegates. Meet the Event.
- Delegates in C# - Attempt to look inside. Part 4 - More Delegates in .NET.