Ich habe eine eventhanler:Parameter weniger Delegat in Reactive Extensions in einem Universal-C# Windows-App
public delegate void OnSizeEventHandler();
Und ich habe die Klasse, die das Ereignis dieser Art löst
CustomObject.OnSize += OnResize;
Wie Sie sehen können es ist nur ein parameterloser Delegierter.
ich es von reaktiven Erweiterungen verwenden möchten wie:
var eventAsObservable = Observable.FromEvent<OnSizeEventHandler>(
x => CustomObject.OnSize += x,
x => CustomObject.OnSize -= x);
bekomme ich diesen Fehler:
Error CS0029 Cannot implicitly convert type 'System.Action<CustomObject.OnSizeEventHandler>' to 'CustomObject.OnSizeEventHandler'
Was mache ich falsch? Es funktioniert ziemlich gut mit EventHandlers, aber wenn es um ein benutzerdefiniertes Ereignis geht, ist es so schwer herauszufinden, wie es funktioniert.
Danke.
Hallo Jon, danke für die Antwort, ich verwende diese Konvention, wann immer ich kann, aber dieser Delegat stammt aus einer Bibliothek, die ich nicht modifizieren kann. Die Antwort, die Sie vorschlagen, wirft, obwohl es kompiliert wird, eine Ausnahme aus: Zusätzliche Information: Kann nicht an die Zielmethode binden, weil ihre Signatur oder Sicherheitstransparenz nicht mit der des Delegattyps kompatibel ist. Es erwartet einen Delegaten mit einem Parameter und mein Delegat ist parameterlos. – toroveneno
@FernandoUrkijoCereceda: Es wäre nützlich zu sagen, dass der Delegierte nicht in Ihrer Kontrolle ist. Schande über die Ausnahme - wird bearbeitet. –