Ish*_*yal 5 c# unit-testing moq
我在接口上有一个方法:
Someclass DoSomething(Someclass什么);`
Someclass DoSomething(Someclass whatever);
因为错误我无法做到:
无法将lambda表达式转换为类型Someclass,因为它不是委托类型.
有任何想法吗?
看看这些方法重载:
Returns(TResult value)
Returns<T>(Func<T, TResult> valueFunction)
Run Code Online (Sandbox Code Playgroud)
对你来说很明显,C#编译器应该选择第二个重载.但实际上C#编译器无法T
从x => x
您传递的参数中推断出泛型参数的类型.这就是编译器选择非泛型方法并尝试将lambda转换为SomeClass的原因.
要解决此问题,您应该帮助编译器推断泛型参数的类型T
.您可以通过显式指定委托参数的类型来实现:
.Returns((SomeClass x) => x);
Run Code Online (Sandbox Code Playgroud)
或者您可以T
手动指定类型
.Returns<SomeClass>(x => x)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
315 次 |
最近记录: |