まず、私はC#にかなり慣れていません。次のコードのように、インターフェイスにメンバー関数を宣言させたいと思います
interface IMyInterface {
void MyAction() {
// do stuff depending on the output of function()
}
void Function();
}
hereFunction
は純粋な仮想であり、 の子によって実装される必要がありIMyInterface
ます。インターフェイスの代わりに抽象クラスを使用できましたが、他のクラスから継承できませんでした...たとえばMyAction
、ディレクトリでファイルを再帰的に検索し、Function
見つかったファイルに適用して、例を明確にします。
インターフェイスがクラスを実装できないという制約を克服するために設計を変更するにはどうすればよいですか?
編集:C++では、テンプレートをそのまま使用します
template<class A>
static void MyAction(const A& a) {
// do stuff depending on the output of A::Function()
};
class MyClass {
void Function();
};
C# のインターフェイスを使用してこれを行うエレガントな方法があるかどうか疑問に思っていました。