Ich bin ein Anfänger mit C# und jede Antwort auf diese nicht finden können:So delegieren Sie die richtige Aktion <Interface>?
Im Versuch, zu delegieren Aktionen mit einigen Schnittstellenparameter, sondern durchsetzen Funktionen mit Objekten, die diese Schnittstelle (oder Klasse) erweitern
// some class extending interface
public class IntEvent : IFace{}
public class MoveEvent : IFace{}
// function i like to use to verify Action
static void setAction(Action<IFace> evt) {
// evt ...
}
// function to delegate as Action
static void evtCheck(IntEvent evt) {
// some func
}
static void evtMove(MoveEvent evt) {
// some func
}
// class {
// call method inside class and delegate this function :
setAction(evtCheck);
setAction(evtMove);
Ich erhalte eine Fehlermeldung, dass "evtCheck(IntEvent)
nicht in Action<IFace>
konvertiert werden kann", auch wenn IntEvent
die IFace
Schnittstelle erweitert.
Wie soll ich das lösen? Vielleicht muss ich Func oder Delegate verwenden?
Ja, das ist was ich versuche zu tun. Aktionsfunktionen erwarten immer Objekte, die dieselbe Schnittstelle oder dasselbe Objekt erweitern. Ok, ich schaue mir das Besucherdesignmuster an. – turbosqel