Перевод анонимных методов в лямбда-выражения

Если бы я перевел этот анонимный метод:

Func<int, int> f = delegate(int i)
{
     return i + 1;
};

в лямбда-выражение, это будет выглядеть так:

Func<int, int> f = i => i + 1;

(Я знаю: это лямбда-выражение будет тайно генерировать другой анонимный метод (компилятором), но это не главное).

Теперь я хочу перевести следующий метод в лямбда-выражение:

Func<int, int> f = delegate(int i)
{
     Debug.WriteLine("Inside the function!");
     return i + 1;
};

Есть ли способ и как мне это сделать?

1 ответ

Решение

Лямбда может содержать более одной строки, синтаксис в этом случае аналогичен анонимным делегатам из C# 2.0:

Func<int, int> f = i =>
{
     Debug.WriteLine("Inside the function!");
     return i + 1;
};
Другие вопросы по тегам