Sono un principiante con C# e non riesco a trovare alcuna risposta per questo:Come delegare l'azione corretta <Interface>?
Nel tentativo di delegare azioni con alcuni parametri di interfaccia, ma spingere attraverso funzioni con oggetti che si estendono questa interfaccia (o classe)
// 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);
Ricevo un errore che "evtCheck(IntEvent)
non può essere convertito in Action<IFace>
", anche se IntEvent
estende l'interfaccia IFace
.
Come dovrei risolvere questo? Forse devo usare Func o Delegate?
Sì, questo è quello che sto cercando di fare. Le funzioni di azione si aspettano sempre oggetti che estendono la stessa interfaccia o oggetto. Ok, guarderò il modello di progettazione dei visitatori. – turbosqel