Qt-spor og signaltrader

Qt-spor og signaltrader h1>

Jeg trenger a vite QT-signalet ekvivalent i c # .Jeg analyserte Qt Signal og spor-konseptet, tenk som er likemann til Delegat og hendelser. Men jeg er i tvil om Deleghate og events. Jeg vil nevne tvil med kodebit (i Qt)

// Deklarasjon av signalet, men det har ingen gjennomforing.

void ItemRemoved (Item * item);

// Defintion of slot.

Koble til signal og spor ved.

Koble til (dette, SIGNAL (ItemRemoved (Item *)),

dette, SLOT (endret ()));

// brann signalet.

avgir ItemRemoved (element);

Ekvivalent til c # er under.

// Ekvivalent av signal.

Offentlig ugyldig delegat ItemRemoved ();

Offentlig begivenhet ItemRemoved ItemRemovedEvt;

// Ekvivalent av sporet.

// Koble signalet med spor.

ItemRemovedEvt & # 43; = new ItemRemoved (Endret);

// Firing hendelsen.

Min tvil er om signalet har parameteren og sporet har ingen parameter? Hvordan brann vi arrangementet? .Vers noen foreslar meg.

Jeg er ikke 100% sikker pa at jeg forstar sporsmalet ditt, men her er et generelt svar: Hendelser / signaler kan ha parametere slik at de kan gi informasjon om det som skjedde.

I QT-koden har elementet merket signal en element * -parameter som sannsynligvis forteller deg hvilket element som er fjernet. Du kan ignorere hendelses- / signalparametere hvis du ikke trenger informasjonen de oppgir, men i C # skal hendelsesbehandleren ha de samme parametrene som hendelsesdelegatortypen har.

Det er ikke nodvendig at en C # -hendelse har parametre, men standardmonsteret bruker EventHandler-delegaten, og at man har en avsenderparameter som er en referanse til objektet som genererte hendelsen og en “args” parameter som inneholder tilleggsinformasjon om hendelsen, hvis noen.

Merket som svar fra Caillen Moderator Mandag 29. juni 2015 15:23.

Alle svar.

“Min tvil er om signal har parameter og spor har ingen parameter? Hvordan brann vi hendelsen? .Venn noen foreslar meg. ”

Delegater, hendelser og handteringsmetoder ma alle v re enige om parametrene. Din ItemRemoved-delegat bor ha en parameter som QT-signalet har. Men i motsetning til QT Change-sporet ma C # Change-metoden ogsa ha en parameter av samme type som delegatparameteren.

Hvis du av en eller annen grunn ikke kan endre metoden for a ha en parameter, kan du bruke et lambda-uttrykk for a “tilpasse” de 2:

ItemRemovedEvt & # 43; = x = & gt; Endret();

Pa en side notat: vurdere a bruke eksisterende delegerte typer og monstre. Spesielt EventHandler og det er generisk variant.

Det er bare et asynkront anrop du vil lage? De er nok selvfolgelig delegat er en av matene.

Du kan spille med den enkle proven for a starte.

Jeg er ikke 100% sikker pa at jeg forstar sporsmalet ditt, men her er et generelt svar: Hendelser / signaler kan ha parametere slik at de kan gi informasjon om det som skjedde.

I QT-koden har elementet merket signal en element * -parameter som sannsynligvis forteller deg hvilket element som er fjernet. Du kan ignorere hendelses- / signalparametere hvis du ikke trenger informasjonen de oppgir, men i C # skal hendelsesbehandleren ha de samme parametrene som hendelsesdelegatortypen har.

Det er ikke nodvendig at en C # -hendelse har parametre, men standardmonsteret bruker EventHandler-delegaten, og at man har en avsenderparameter som er en referanse til objektet som genererte hendelsen og en “args” parameter som inneholder tilleggsinformasjon om hendelsen, hvis noen.

Merket som svar fra Caillen Moderator Mandag 29. juni 2015 15:23.

Microsoft gjennomforer en online-undersokelse for a forsta din mening pa Msdn-nettstedet. Hvis du velger a delta, vil onlineundersokelsen bli presentert for deg nar du forlater nettstedet Msdn.


Vil du spille i det beste kasinoet? Vi fant det for deg. Trykk her nå!