Is het een commissie? Een delegate is een type-safe object dat wijst naar een andere methode (of methoden) in het programma die later worden aangeroepen. In gewone taal is een delegate een object dat naar een methode kan verwijzen, en wanneer een delegate wordt aangemaakt, creëert deze een object dat naar de methode verwijst, waarna de methode kan worden aangeroepen, dat wil zeggen, de delegate kan de methode aanroepen waarnaar hij verwijst.
Hoe gebruik ik delegatie? 1. Definieer het type toevertrouwing
[toegangsmodificator] delegate geeft type delegatenaam (parameter) terug;
2. Verklaar het vertrouwde object
Delegate Naam De naam van de gedelegeerde instantie;
3. Maak een delegatieobject aan (bepaal aan welke methode je moet binden)
Delegate instance naam=nieuwe delegate naam (methode van een bepaalde klasse)
4. Gebruik de entrusted call-methode
Gedemitteerde instantienaam (parameter)
Voorzorgsmaatregelen voor toevertrouwen:1. De delegatie en methode moeten dezelfde parameters hebben.
2、Een delegate kan meerdere methoden aanroepen, d.w.z. een delegate kan een lijst van aanroepbare methoden bijhouden in plaats van één enkele methode, bekend als multicast (multicast)。
3、Implementeert de toename en afname van de methode met behulp van += en -= operaties
Voorbeeld:
Schrijven:
1. Delegate Delegate Naam = nieuwe Delegate (methodnaam die wordt aangeroepen); Ordernaam (parameter);
2. Delegate Delegate naam = methodenaam die wordt aangeroepen; Ordernaam (parameter);
3. Anonieme methode
delegate delegate naam=delegate(parameter){methodenbody die wordt aangeroepen}; Ordernaam (parameter);
4. Lambda-uitdrukking
Delegateorder Naam=((Parameter 1,。。 parameter n)=>{methodelichaam dat wordt aangeroepen}); Ordernaam (parameter);
5. Gebruik Action <T>en Func<T>, de eerste heeft geen returnwaarde
Func< Parameter 1, Parameter 2, Retourwaarde> Delegate Naam = ((Parameter 1, Parameter 2) => {Methodebody met Retourwaarde }); Retourwaarde = ordernaam (parameter 1, parameter 2);
Stickercode:
|