NOVINKA: Získej 40 hodin praktických dovedností s AI – ZDARMA ke každému akreditovanému kurzu!
Mezinárodní den IT společnosti je tady! Pouze nyní můžeš získat 90 % extra kreditů při nákupu od 1199 kreditů s promo kódem AJTACI90. Tak neváhej!

Diskuze: Delegati a udalosti

V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.

Jak se ti líbí článek?
Před uložením hodnocení, popiš prosím autorovi, co je špatněZnaků 0 z 50-500
Jak se ti kurz líbí?
Tvé hodnocení kurzuZnaků 0 z 50-500
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
+2
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
+1
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.