Как правильно делегировать Action?

Я новичок в C# и не могу найти ответа на этот вопрос:

Я пытаюсь делегировать действия с некоторым параметром интерфейса, но проталкивать функции с объектами, которые расширяют этот интерфейс (или класс)

// 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);

Я получаю сообщение об ошибке "evtCheck(IntEvent)не может быть преобразовано в Action", даже если IntEventрасширяет Интерфейс IFace.

Как мне это решить? Может быть, мне нужно использовать Func или Delegate?

6
задан turbosqel 10 June 2012 в 18:03
поделиться