dodání ihned! nové
Pouze tento týden sleva až 80 % na e-learning týkající se PHP. Zároveň využij akce až 30 % zdarma při nákupu e-learningu. Více informací.
Hledáme programátora do rostoucího týmu ITnetwork.cz, 100% home office, 100% flexibilní pracovní doba. Více informací
PHP week

Diskuze: Delegati a udalosti

Aktivity
Avatar
Tayson
Člen
Avatar
Tayson:26.9.2016 21:06

Ahojte. Chcem sa opytat ohladom delegatov a udalosti. Viete mi blizsie povedat konkretnejsi rozdiel ? Pretoze naco by som robil udalost ked si mozem spravit delegata a jednoducho si metodu z druhej class zavolat po kliku napriklad bez toho aby som robil udalost a to mozem spojit metod kolko chcem.

 
Odpovědět
26.9.2016 21:06
Avatar
Marian Benčat:26.9.2016 21:16

Rozdíl je poměrně jednoduchý, ale o to důležitější.

Delegáta můžeš velmi jednoduše přepsat a tím mimo samotného přepsání i odstraníš všechny ostatní "subscriby".

animal.Do += () => Foo();
animal.Do += () => Bla();

animal.Do = () => XYZ(); //prepsani delegata, Foo a Bla jsou hooknute na delegata, ktery uz neexistuje
Nahoru Odpovědět
26.9.2016 21:16
Totalitní admini..
Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!
Avatar
Odpovídá na Tayson
Neaktivní uživatel:26.9.2016 21:27

A ještě event je možné vyvolat pouze uvnitř dané třídy, kdežto delegát kdekoliv na instanci třídy s delegátem pomocí metody Invoke():

instance.PublicDelegate.Invoke(parametry...);
Editováno 26.9.2016 21:28
Nahoru Odpovědět
26.9.2016 21:27
Neaktivní uživatelský účet
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 3 zpráv z 3.