在页面code.google.com/p/fakeiteasy/
我注意到行了一个问题:C#关于lambda表达式作为方法参数
A.CallTo(() => shop.GetTopSellingCandy()).Returns(lollipop);
所以,问题是 - 如何通过lambda表达式作为方法参数?
在页面code.google.com/p/fakeiteasy/
我注意到行了一个问题:C#关于lambda表达式作为方法参数
A.CallTo(() => shop.GetTopSellingCandy()).Returns(lollipop);
所以,问题是 - 如何通过lambda表达式作为方法参数?
此函数采用类型Func<T>
(具有通用参数的普通代表)或更可能的Expression<Func<T>>
(expression tree)的参数。
该函数本身可能具有通过传递方法推断的泛型参数。
通过采用表达式树,函数能够检查表达式中的代码并查看它的功能。
+1永远不会失败......总是比我快20秒。 – 2010-11-18 17:04:45
是的,没错,FakeItEasy检查表达式树以获取调用方法的实例,以及在该实例上调用哪个方法(以及哪些参数)。 – 2010-11-27 12:22:41
您给出的代码完全是这样做的 - 将lambda表达式作为参数传递给方法调用。
CallTo
可能有签名'CallTo(Action action)'。所以lambda通过作为代表
呃?我可能会错过一些东西(一个lambda表达式有一个有效的可命名静态类型,除了处理那些不适合的'new'结构时) - 你尝试了什么?提示:在很多情况下,考虑'Func <...>'。 – 2010-11-18 17:02:50