cll*_*pse 36 c# recursion delegates
我在这做错了什么?我该如何执行我的行动?
var recurse = new Action<IItem, Int32>((item, depth) =>
{
if (item.Items.Count() > 0) recurse(item, depth + 1); // red squiggly here
// ...
});
Run Code Online (Sandbox Code Playgroud)
当打电话recurse
说"方法,代表或事件预期"时,我得到了一个红色的波浪形.
更新
我接受了Homam的回答.我只是想添加/分享同样的另一种语法......但是我觉得眼睛看起来更容易......
Action<IEnumerable<Item>> Recurse = null;
Recurse = item =>
{
if (item.Items != null) Recurse(item.Items);
// ...
};
Run Code Online (Sandbox Code Playgroud)
Hom*_*mam 59
只需定义委托Action
并在递归调用它之前为其赋值null.
Action<IItem, Int32> recurse = null;
Run Code Online (Sandbox Code Playgroud)
然后
recurse = new Action<IItem, Int32>((item, depth ) =>
{
if (item.Items.Count() > 0) recurse(item, depth + 1); // red squiggly here
// ...
});
Run Code Online (Sandbox Code Playgroud)
祝好运!