IMyInterface<T>
1 つの関数を単純に記述するインターフェースがあるとします。
public interface IMyInterface<T>
{
T MyFunction(T item);
}
これを に置き換えることもできFunc<T, T>
ますが、セマンティック上の理由からインターフェイスが必要です。そのインターフェイスとの間の暗黙的な変換を定義して、代わりにFunc<T,T>
使用した場合と同じように、このインターフェイスをパラメーターとして受け入れる関数に引数として匿名デリゲートまたはラムダを渡すことができるようにすることはできますか?Func<T,T>
上記で宣言されたインターフェースを使用して実証するには、次のような関数が必要です。
public T TestFunction<T>(IMyInterface myInterface, T value)
{
return myInterface.MyFunction(value);
}
私はこのように呼び出すことができます:
TestFunction(x => x + " world", "hello");
結果は「hello world」になります。