Ref-Parameter in der anonymen Methode aktualisieren

8

Gibt es eine Problemumgehung, um einen Ref-Parameter innerhalb einer anonymen Methode zu aktualisieren?

Ich weiß, dass die anonyme Methode keinen Zugriff auf ref-Parameter des äußeren Bereichs erlaubt, aber gibt es einen anderen Weg, dies zu tun? Ich verwende eine externe Bibliothek für den MessageStream, also kann ich die Argumente des Delegaten nicht ändern ...

%Vor%     
jamos 13.05.2014, 12:04
quelle

2 Antworten

5

In Ihrem Fall gibt es keinen praktikablen Workaround für dieses Problem: Wenn das Ereignis Stream.MessageReceived ausgelöst wird, kann der count im Aufrufer Ihrer DoWork -Funktion weit entfernt sein.

In solchen Situationen sollten Sie das count in einem Objekt kapseln und einen Verweis auf dieses Objekt sowohl im Ereignishandler als auch im Aufrufer beibehalten, wie folgt:

%Vor%     
dasblinkenlight 13.05.2014, 12:11
quelle
1

Wenn Sie möchten, dass der Delegat eine Variable aus einem anderen Bereich aktualisiert, übergeben Sie ein Lambda, das den Wert festlegt, anstatt die Anzahl um ref zu übergeben.

%Vor%     
dcastro 13.05.2014 12:13
quelle

Tags und Links