NOVINKA! E-learningové kurzy umělé inteligence. Nyní AI za nejlepší ceny. Zjisti více:
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!
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..
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.