I passieren müssen die folgenden Code, der auf einem Zustand Abtretungsempfänger basiert oder hebt die Zuordnung auf einige Objekte eine parametrisierte Ereignishandler, ein anonymes (Lambda) Methode verwendet wird:Wie benutzerdefinierte Parameter Ereignishandler
{
if (condition)
foreach (var channel in dataSource.Channels)
{
channel.NewSamples += (s, vals) => AddSamples(channel.Index, vals);
}
}
else
{
foreach (var channel in dataSource.Channels)
{
channel.NewSamples -= (s, vals) => AddSamples(channel.Index, vals);
}
}
}
private void AddSamples(int channelIndex, IEnumerable<int> samples)
{
/// do work
}
Ich vermute Dies würde nicht korrekt abbestellen, und so würde ich gerne channel.Index
als Parameter an einen benannten Handler übergeben, aber ich weiß nicht, wie es geht.
Wenn die Zuordnung geschieht, können Sie verschiedene Werte für 'channel.Index' haben, aber keine Möglichkeit, jeden Handler zu sagen, was' channelIndex "Wert, den Sie weitergeben. Deshalb habe ich diesen Ansatz nicht gewählt. Denkst du, dass das behoben werden kann? – heltonbiker
@heltonbiker yeah Was ich vorher geschrieben habe, war völliger Unsinn für deinen Fall. Überprüfen Sie meine aktualisierte Antwort. – Evk
Hm, das Wörterbuch ist eine interessante Idee. Ich werde es heute testen und so schnell wie möglich Feedback geben. Danke für jetzt! – heltonbiker