Was bedeutet diese Zeile? consumer.Received + = (Modell, ea) mit der Erklärung,
das ist Snip von Code kann mir jemand helfen. Ich bin nicht „consumer.Received + = (Modell, ea) bekommen =>
Was bedeutet diese Zeile? consumer.Received + = (Modell, ea) mit der Erklärung,
das ist Snip von Code kann mir jemand helfen. Ich bin nicht „consumer.Received + = (Modell, ea) bekommen =>
Ab den docsReceived
ist ein Ereignis in der EventingBasicConsumer
-Klasse. Das bedeutet, dass Sie durch Hinzufügen eines Ereignis-Handler für das Ereignis registrieren zu.
consumer.Recieved += (model, args) => { /*
do whatever you want when the event is triggered
*/};
Dies ist ein Teil des Codes (genauer ein Delegierter), die ausgeführt wird, wenn das Ereignis eintritt. In Ihrem speziellen Fall, dass Sie einige Argumente aus der Veranstaltung an diesem Ereignisse angemessen bekommen auch reagieren. der das erste ist vom Typ IBasicConsumer
und das zweite vom Typ BasicDeliverEventArgs
. Somit ist das Folgende identisch mit dem Code, den ich oben geschrieben habe:
Während Sie oft das erste weglassen können, da es nicht benötigt wird, enthält das zweite Informationen, die der Aufrufer des Ereignisses (das Rabbit-Framework in Ihrem Fall) auf diesen Delegaten angewendet hat. So können Sie es verwenden und zum Beispiel in einem MessageBox
anzeigen.
var body = args.Body;
Alternativly ein anonymes Verfahren zur Verwendung (eines Verfahrens ohne Namen, wie oben dargestellt) Sie können sicher ein eine mit dem Namen verwenden:
consumer.Recieved += MyHandler;
private void MyHandler(IBasicConsumer model, BasicDeliverEventArgs args)
{
// your stuff here
}
tun hat so den Vorteil, dass Sie leicht den Handler entfernen .
consumer.Recieved -= MyHandler;
So kocht Ihre Frage zu dem, was unten ist consumer.Received += (model, ea) => {stuff}
tun? Es ist eine Lambda-Funktion ..
Nun das Erhalten ist ein Ereignis, das eindeutig 2 Eigenschaften hat, für die der Coder sie Modell und EA benannt hat. Die sie verwenden sie in {Sachen}
Bisher konnten Sie/geschrieben hätte (und ich bin hier Variablentypen bilden aber)
consume.Received += mycall;
void mycall(String model, Mything ea)
{
stuff;
}
Es gibt jedoch Nachteile des Lamda, während Sie sie auf hinzufügen die Fliege, es ist nicht so einfach zu entfernen .. wo als der ältere Stil Sie konsumieren können.Received - = Mycall;
Es heißt Lambda –
Also lesen Sie meine BIO es erklärt Legastheniker .. – BugFinder
Sorry, ich will dich nicht beleidigen. Aber es ist ein sehr häufiger Fehler und ich wollte es Ihnen zeigen –
Bitte Postleitzahl anstelle von Bildern eingeben. –
Nachschlagen Lambda. Der Operator => wird normalerweise als "geht zu" gesprochen. – TaW