私はC#のと初心者だと、このための任意の答えを見つけることができません:一部のインターフェイスパラメータを指定してアクションを委任ますが、このインタフェース(またはクラス)を拡張するオブジェクトと関数を使ってプッシュしよう正しいアクションを委任する方法<Interface>?
イム
// 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);
IntEvent
がIFace
インターフェイスを拡張しても、「evtCheck(IntEvent)
はAction<IFace>
に変換できません」というエラーが表示されます。
どうすれば解決できますか?たぶん私はFuncまたはDelegateを使用する必要がありますか?
これは私がやろうとしていることです。アクション関数は、常に同じインタフェースまたはオブジェクトを拡張するオブジェクトを期待します。さて、訪問者のデザインパターンを見てみましょう。 – turbosqel