C#传递方法,参数作为Lazy <t>的参数

时间:2015-06-25 20:49:29

标签: c# .net

让我们考虑一下这段代码:

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)被召唤。

我尝试了各种各样的想法,但我找不到办法让它发挥作用。

1 个答案:

答案 0 :(得分:4)

除非我误解了这个问题,否则最简单的方法就是将参数包含为lambda表达式的闭包:

var x = 2;
var y = 3;
DoSomething(() => Add(x, y));