【发布时间】:2016-04-07 10:57:49
【问题描述】:
我已经对此进行了搜索,但我真的不知道如何用这个问题来回答问题,到目前为止,我在 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 表达式的情况下做到这一点?
【问题讨论】:
-
子动作作为输入参数传递给动作,我不明白你想给它分配什么。
-
我不得不想了很多关于为什么我不能这样做。答案是我正在调用一个没有参数的方法(上面未显示),但调用了存储在“myAction”属性中的方法。 myAction 需要知道要传递给子操作的 s & i 参数。在大多数情况下,我使用这个 myAction 并且 subaction 定义在不同的地方,并且完全写成方法,但是在这个地方我需要将两者一起定义,并希望使用 lambda 表达式来保持简洁并避免写出完整的方法。 Tsayper 下面的解决方案似乎得到了我所需要的。