我已经对此进行了搜索,但是到目前为止我还不知道如何提出问题以获得答案我无法在Lambda表达式的嵌套操作中找到任何内容。我可以找到很多关于将lambda表达式作为参数传递的帮助,其中参数是委托,事实上我在我的代码中做了很多。这是嵌套的lambda表达式,它给我带来了问题。
我有一个类型为
的类Action<Action<string,int>> myAction
我希望为它分配一个Lambda表达式。我可以在没有Lambda表达式的情况下使用我在代码中的其他地方使用的实际方法来实现。我也可以做一些简单的事情,比如
myAction = ((a) => { a("a string", 0); });
但我想将子动作和动作放在一个Lambda中。有点像...
myAction = (((s,i)=>{//sub-action body here})=> { //do something here});
但是这种语法不起作用。有没有办法做到这一点,或者我必须事先定义我的方法,如果我想这样做,没有Lambda表达式吗?
答案 0 :(得分:1)
Action<Action<string, int>> myAction = a => (new Action<string, int>((s, i) => Console.WriteLine(i + s)))("hello", 1);
myAction(null); //1hello
Console.ReadLine();
虽然等于
Action<Action<string, int>> myAction = a => Console.Writeline("1hello");
你只是忽略了一个论点