1

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

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;
};

有没有办法,我该怎么做?

4

1 回答 1

6

Lambda 可以包含多行,这种情况下的语法类似于 C# 2.0 中的匿名委托:

Func<int, int> f = i =>
{
     Debug.WriteLine("Inside the function!");
     return i + 1;
};
于 2013-04-30T10:01:47.253 回答