将匿名方法转换为lambda表达式

时间:2013-04-30 10:00:10

标签: c# lambda anonymous-methods

如果我要翻译这个匿名方法:

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

进入lambda表达式,它会这样:

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

(我知道:这个lambda表达式将秘密生成另一个匿名方法(由编译器生成),但这不是重点。)

现在我想将以下方法转换为lambda表达式:

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

有办法吗?我该怎么做?

1 个答案:

答案 0 :(得分:6)

Lambdas可以包含多行,本例中的语法类似于C#2.0中的匿名委托:

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