私は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<IFace>
IntEvent
IFace
これをどのように解決すればよいですか?たぶん私はFuncまたはDelegateを使用する必要がありますか?