假设我有一个接口
我可以使用
为了演示,使用上面声明的接口,我想要一个类似于以下函数的函数:
我可以像这样调用:
IMyInterface<T>
,它只描述一个函数:public interface IMyInterface<T>
{
T MyFunction(T item);
}
我可以使用
Func<T, T>
来替代这个接口,但出于语义原因,我希望保留这个接口。我能否定义一个隐式转换,将该接口和 Func<T,T>
相互转换,以便我可以像使用 Func<T,T>
一样将匿名委托或 Lambda 表达式作为参数传递给接受此接口作为参数的函数?为了演示,使用上面声明的接口,我想要一个类似于以下函数的函数:
public T TestFunction<T>(IMyInterface myInterface, T value)
{
return myInterface.MyFunction(value);
}
我可以像这样调用:
TestFunction(x => x + " world", "hello");
结果会是“hello world”。