Ar tai komisinis mokestis? Atstovas yra tipui saugus objektas, nurodantis kitą programos metodą (ar metodus), kuris bus iškviestas vėliau. Paprastais žodžiais tariant, atstovas yra objektas, galintis nurodyti metodą, o sukūrus delegatą, jis sukuria objektą, nurodantį metodą, o tada metodas gali būti iškviečiamas, tai yra, atstovas gali iškviesti metodą, kurį jis nurodo.
Kaip naudotis delegavimu? 1. Apibrėžkite pavedimo tipą
[prieigos modifikatorius]atstovas grąžina tipo atstovo pavadinimą (parametrą);
2. Deklaruokite patikėtą objektą
Atstovo vardas Įgalioto egzemplioriaus pavadinimas;
3. Sukurkite delegavimo objektą (nustatykite, su kuriuo metodu susieti)
Atstovo egzemplioriaus pavadinimas=Naujas atstovo vardas (tam tikros klasės metodas)
4. Naudokite patikėtą skambučio metodą
Įgaliotojo egzemplioriaus pavadinimas (parametras)
Atsargumo priemonės pavedimui:1. Delegavimas ir metodas turi turėti tuos pačius parametrus.
2、Atstovas gali iškviesti kelis metodus, t. y. atstovas gali tvarkyti iškviečiamų metodų sąrašą, o ne vieną metodą, vadinamą daugiaadresiu (daugiaadresiu)。
3、Diegimo metodo didinimas ir mažinimas naudojant += ir -= operacijas
Pavyzdys:
Rašymas:
1. Delegato atstovo vardas = naujas atstovas (metodo pavadinimas, kuris bus iškviečiamas); Užsakymo pavadinimas (parametras);
2. Atstovo vardas = metodo pavadinimas, kuris bus iškviestas; Užsakymo pavadinimas (parametras);
3. Anoniminis metodas
delegate name=delegate(parameter){metodo tekstas, kuris bus iškviečiamas}; Užsakymo pavadinimas (parametras);
4. Lambda išraiška
Įgaliotinio užsakymo pavadinimas=((1 parametras,。。 parametras n)=>{metodo turinys, kuris bus iškviečiamas}); Užsakymo pavadinimas (parametras);
5. Naudokite "<T>Action" ir "Func<T>", pirmasis neturi grąžinamos vertės
func< 1 parametras, 2 parametras, grąžinama reikšmė> atstovo vardas = ((1 parametras, 2 parametras) => {metodo turinys su grąžinamąja reikšme }); Grąžinama vertė = užsakymo pavadinimas (1 parametras, 2 parametras);
Lipduko kodas:
|