27
¿Qué estoy haciendo mal aquí? ¿Cómo puedo ejecutar mi acción?Llamada recursiva - Acción lambda
var recurse = new Action<IItem, Int32>((item, depth) =>
{
if (item.Items.Count() > 0) recurse(item, depth + 1); // red squiggly here
// ...
});
Me estoy poniendo un serpenteante roja al llamar recurse
diciendo "método, delegado o evento esperado".
actualización
He aceptado la respuesta de Homam. Sólo me gustaría añadir/compartir otra sintaxis para el mismo ... Pero lo que me parece un poco más fácil en los ojos ...
Action<IEnumerable<Item>> Recurse = null;
Recurse = item =>
{
if (item.Items != null) Recurse(item.Items);
// ...
};
No me gustaría tener que dividir la definición y la implementación. ¿Hay alguna manera de que pueda hacer esto en una línea de código? – roosteronacid
No. Eric explica por qué en su entrada de blog (como es habitual, aparece): http://blogs.msdn.com/b/ericlippert/archive/2006/08/18/706398.aspx –
@Ron: Nice tidbit. Tiene algún tipo de sentido extraño :) – roosteronacid