让我们考虑一下这段代码:
public void DoSomething<T>(Func<T> MyFunc)
{
var NewLazyItem = new Lazy<T>(MyFunc);
// do stuff
// use the NewLazyItem
}
让我们说我的方法是这样的:
public int Add(int a, int b) { return a + b; }
我想要实现的是能够将添加方法传递给 DoSomething 方法但是带有参数。
理想情况下,我可以传递添加, 2 和 3 ,当使用 NewLazy 项时,添加( 2,3)被召唤。
我尝试了各种各样的想法,但我找不到办法让它发挥作用。
答案 0 :(得分:4)
除非我误解了这个问题,否则最简单的方法就是将参数包含为lambda表达式的闭包:
var x = 2;
var y = 3;
DoSomething(() => Add(x, y));