Рекурсивный вызов - Action lambda

Что я здесь делаю не так? Как я могу выполнить свое действие?

var recurse = new Action<IItem, Int32>((item, depth) =>
{
    if (item.Items.Count() > 0) recurse(item, depth + 1); // red squiggly here

    // ...
});

Я получаю красный волнистый сигнал при вызове recurse с сообщением «ожидаемый метод, делегат или событие» .


Обновление

I принял ответ Хомама. Я просто хотел бы добавить / поделиться другим синтаксисом для того же самого ... Но который мне кажется немного проще для глаз ...

Action<IEnumerable<Item>> Recurse = null;

Recurse = item =>
{
    if (item.Items != null) Recurse(item.Items);

    // ...
};
36
задан dharmatech 26 October 2011 в 23:53
поделиться