IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
kajano
Člen
Avatar
kajano:20.8.2013 21:26

Jsem zacatecnik a potreboval bych poradit s volanim udalosti.Mám přidánu dll knihovnu jako references. Dle popisu k dané dll je součástí event OnAgentPerfor­manceUpdate(BSTR SiteID, long lAgentID). Potřeboval bych poradit jak tento event zakomponovat do svého programu.
Část kodu je:

NETMONCLIENTLib­.INetMonClien­tObjNotify_Event notifyTest = new NETMONCLIENTLib­.NetMonClientOb­j(test);

notifyTest.On­Disconnect(RTI­ServerName);

Při překladu mi to hlásí:Error 1 The event 'NETMONCLIENTLib­.INetMonClien­tObjNotify_Even­t.OnDisconnec­t' can only appear on the left hand side of += or -=

 
Odpovědět
20.8.2013 21:26
Avatar
Jan Vargovský
Tvůrce
Avatar
Odpovídá na kajano
Jan Vargovský:20.8.2013 21:32

Když přidáváš event, tak se přidává přes +- (nebo -=) a né jen = :)

 
Nahoru Odpovědět
20.8.2013 21:32
Avatar
kajano
Člen
Avatar
Odpovídá na Jan Vargovský
kajano:20.8.2013 21:44

Moc nevím jak by měl být přesně ten kód. V dokumentaci je event OnAgentPerfor­manceUpdate(BSTR SiteID, long lAgentID) = Called when performance data for an agent has changed. INetMonClientOb­jNotify- This is the object used to receive notifications when performance data is updated. Ale jak to zakomponovat do kódu?

 
Nahoru Odpovědět
20.8.2013 21:44
Avatar
Odpovídá na kajano
Luboš Běhounek Satik:20.8.2013 21:47

Pokud používáš visual studio, napiš jen do kódu

notifyTest.OnDisconnect

za to napiš hned +, hned za to = a pak dvakrát zmáčkni tab :)

Nahoru Odpovědět
20.8.2013 21:47
https://www.facebook.com/peasantsandcastles/
Avatar
matesax
Tvůrce
Avatar
Odpovídá na kajano
matesax:20.8.2013 23:03

Projdi si pojmy jako delegát, EventHandler atd. Event z dobrých důvodů nemůžeš initializovat. (Nastavit mu novou hodnotu.) Můžeš ale přidávat části kódu přes delegáty. Dále nemusíš používat přímo delegate(), ale i lambda výraz:

event += parametr => void();
event += (parametr1, parametr2) => { více metod };

Ovšem jde to ještě anonymně, anebo přidat přímo tělo metody:

event += metoda;

A napadá mne ještě mnoho dalšího, co se dá dělat. Včetně odebrání delegáta, či těla metody atd... (-=) Anebo zmíněné použití EventHandlera - což je delegát...

Editováno 20.8.2013 23:04
 
Nahoru Odpovědět
20.8.2013 23:03
Avatar
kajano
Člen
Avatar
Odpovídá na matesax
kajano:22.8.2013 0:23

Stále se mi nedaří s tím pohnout.Nevím jak mám napsat fungující kód, aby mi volal z dll reference která má event OnAgentPerfor­manceUpdate(BSTR SiteID, long lAgentID)

OnAgentPerfor­manceUpdate(BSTR SiteID, long lAgentID)Called when performance data for an agent has changed.

Připadně zda je možno napsat co mám pro lepší orientaci popsat.

 
Nahoru Odpovědět
22.8.2013 0:23
Avatar
Odpovídá na kajano
Luboš Běhounek Satik:22.8.2013 0:58

Tak ještě jednou...

Napiš

notifyTest.OnDisconnect

za to napiš hned +, hned za to = a pak dvakrát zmáčkni tab.

Nahoru Odpovědět
22.8.2013 0:58
https://www.facebook.com/peasantsandcastles/
Avatar
matesax
Tvůrce
Avatar
Odpovídá na kajano
matesax:22.8.2013 6:44

Tak už si konečně nastuduj ty delegáty... Podívej se na lambda výrazy atd.

 
Nahoru Odpovědět
22.8.2013 6:44
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 8 zpráv z 8.