Geek tričko zdarma Geek tričko zdarma
Tričko zdarma! Stačí před dobitím bodů použít kód TRIKO15. Více informací zde
Avatar
Ladislav Niderle:1.6.2018 8:27

Ahoj, nevím jak mám přesně v nové třídě vytvořit v c# událost, kterou si budu moci volat někde jinde.

Zkusil jsem: Z VB.net znám raise event, ale tam jsem to použil v jiném kontextu a to ve formuláři, který měl v sobě vložený user control, takže se tam dalo jednoduše na ten event dostat, ale zde právě nevím.

Chci docílit: Mám vytvořenou třídu, kterou si volám pomocí následujícího příkazu:

class trida = new trida();
trida.Send();

V procedůře Send se děje něco, a tam se snažím na chvilku vyskočit ven do původního místa, abych zapsal data. Jedná se totiž o komunikaci, takže bych tímto chtěl uživateli ukázat co jsem poslal a potom i co jsem dostal za odpověď, ale o tu odpověď mi momentálně nejde.

 
Odpovědět 1.6.2018 8:27
Avatar
Odpovídá na Ladislav Niderle
Erik Šťastný:1.6.2018 8:33

.Send je synchroní metoda? Co kdyby ti prostě rovnou ona vrátila co odeslala a co dostala zpět?

 
Nahoru Odpovědět 1.6.2018 8:33
Avatar
Odpovídá na Erik Šťastný
Ladislav Niderle:1.6.2018 9:00

Ona ty data vrací, ale funkce Send má v sobě zakomponovanou komunikaci s cizím serverem a já potřebuji právě před tím než dojde k odeslání na daný serer vrátit data, aby uživatel viděl co posílá. Jedná se o testovací aplikaci, takže to normální uživatel ani nemá.

 
Nahoru Odpovědět 1.6.2018 9:00
Avatar
Odpovídá na Ladislav Niderle
Erik Šťastný:1.6.2018 9:10

A kde vkládáš ty data co odesíláš? Jsou jako proměnná někde v "trida" jenom? Co si je od tama prostě jenom přečíst před zavoláním .Send()

Podle mě se snažíš jít s kánónem na vrabce.

 
Nahoru Odpovědět 1.6.2018 9:10
Avatar
Odpovídá na Erik Šťastný
Ladislav Niderle:1.6.2018 9:49

Data vkládám do třídy pomocí procedur do objektů, ale funkce send mi to spojí, rozřadí podle kritérií a potom postupně odesílá.

 
Nahoru Odpovědět 1.6.2018 9:49
Avatar
Odpovídá na Ladislav Niderle
Erik Šťastný:1.6.2018 10:37

No a co kdyby jsi to pospojování a send rozložil na dvě metody?

.PrepareData která ti vrátí to co se bude odesílat
.SendData kterou zavoláš potom

 
Nahoru Odpovědět 1.6.2018 10:37
Avatar
Ladislav Niderle:1.6.2018 12:21

Nakonec jsem byl schopen najít a udělat řešení podle tohoto:
https://docs.microsoft.com/…enthandler-1?…

 
Nahoru Odpovědět 1.6.2018 12:21
Avatar
Odpovídá na Ladislav Niderle
Erik Šťastný:1.6.2018 12:49

Jak chceš no, mě jen pořád přišlo, že chceš na něco tak triviálního jít složitě :)

 
Nahoru Odpovědět 1.6.2018 12:49
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.