Avatar
Tayson
Člen
Avatar
Tayson:

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. září 21:06
Avatar
Marian Benčat
Redaktor
Avatar
Marian Benčat:

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. září 21:16
Avatar
Lukas C#
Redaktor
Avatar
Odpovídá na Tayson
Lukas C#:

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. září 21:28
 
Nahoru Odpovědět  +1 26. září 21:27
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.