Avatar
kajano
Člen
Avatar
kajano:

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ý
Redaktor
Avatar
Odpovídá na kajano
Jan Vargovský:

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:

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):

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
:)
Avatar
matesax
Redaktor
Avatar
Odpovídá na kajano
matesax:

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:

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):

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
:)
Avatar
matesax
Redaktor
Avatar
Odpovídá na kajano
matesax:

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.