27
Cosa sto facendo male qui? Come posso eseguire la mia azione?Chiamata ricorsiva - Azione lambda
var recurse = new Action<IItem, Int32>((item, depth) =>
{
if (item.Items.Count() > 0) recurse(item, depth + 1); // red squiggly here
// ...
});
sto ottenendo una rossa ondulata quando si chiama recurse
dicendo "metodo, delegato o di un evento previsto".
Aggiornamento
Ho accettato risposta Homam. Vorrei solo aggiungere/condividere un'altra sintassi per lo stesso ... Ma che trovo un po 'più facile per gli occhi ...
Action<IEnumerable<Item>> Recurse = null;
Recurse = item =>
{
if (item.Items != null) Recurse(item.Items);
// ...
};
Mi dispiacerebbe dover dividere la definizione e l'implementazione. C'è un modo per farlo in una riga di codice? – roosteronacid
No. Eric spiega il motivo per cui nel suo post di blog (come al solito appare): http://blogs.msdn.com/b/ericlippert/archive/2006/08/18/706398.aspx –
@Ron: bel bocconcino. Fa una specie di strano senso :) – roosteronacid