我在界面上有一个方法:
Someclass DoSomething(Someclass what);`
由于错误,我无法.Returns(x => x)
:
无法将lambda表达式转换为类型Someclass,因为它不是a 代表类型。
有什么想法吗?
答案 0 :(得分:7)
看看这些方法重载:
Returns(TResult value)
Returns<T>(Func<T, TResult> valueFunction)
对你来说很明显,C#编译器应该选择第二个重载。但实际上C#编译器无法从您传递的参数T
推断泛型参数x => x
的类型。这就是为什么编译器选择非泛型版本的方法并尝试将lambda转换为SomeClass的原因。
要解决此问题,您应该帮助编译器推断泛型参数T
的类型。您可以通过显式指定委托参数的类型来执行此操作:
.Returns((SomeClass x) => x);
或者您可以手动指定T
的类型
.Returns<SomeClass>(x => x)
答案 1 :(得分:1)
您可以创建client_encoding = utf8
的实例并返回相同的
someclass