假设我有一个IMyInterface<T>
简单描述一个功能的接口:
public interface IMyInterface<T>
{
T MyFunction(T item);
}
我可以将其替换为Func<T, T>
,但出于语义原因,我想要该界面。我是否可以在该接口之间定义一个隐式转换,Func<T,T>
以便我可以将匿名委托或 lambda 作为参数传递给接受此接口作为参数的函数,就像我使用的Func<T,T>
那样?
为了演示,使用上面声明的接口,我想要一个这样的函数:
public T TestFunction<T>(IMyInterface myInterface, T value)
{
return myInterface.MyFunction(value);
}
我可以这样称呼:
TestFunction(x => x + " world", "hello");
结果将是“hello world”。