在页面code.google.com/p/fakeiteasy/
我注意到了这一行:
A.CallTo(() => shop.GetTopSellingCandy()).Returns(lollipop);
所以问题是 - 如何将lambda表达式作为方法参数传递?
答案 0 :(得分:5)
此函数采用Func<T>
类型的参数(具有通用参数的普通代理),或者更可能是Expression<Func<T>>
(expression tree)。
函数本身可能有一个泛型参数,该参数是从传递的方法中推断出来的。
通过获取表达式树,该函数能够检查表达式中的代码并查看它的作用。
答案 1 :(得分:2)
你给出的代码正是这样做的 - 将lambda表达式作为参数传递给方法调用。
答案 2 :(得分:0)
CallTo
可能有签名'Call To(Action action)'。所以lambda作为委托传递