Action<Action<string,int>> 和 Lambda 表达式在 C#



我已经搜索过了,但我真的不知道如何用词来表达问题以获得答案,到目前为止,我找不到任何关于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表达式的情况下这样做?

        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");

您只需忽略一个参数

最新更新