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

标签 c# lambda anonymous-methods

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

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

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

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

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

现在我想将下面的方法翻译成一个 lambda 表达式:

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

有什么办法吗?我该怎么做?

最佳答案

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

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

关于c# - 将匿名方法转换为 lambda 表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16297144/

相关文章:

c# - 是否可以在 Regex 中执行此操作

c# - C# 中的高级列表比较

multithreading - 字符串过早销毁以及如何避免呢?

c# - 在 lambda Where() 中全选

c# - 为什么 CLR 为匿名方法创建新类?

c# - 动态创建匿名类型的属性

c# - 如何在 Asp.Net 网站中包含另一个项目控制台应用程序 exe?

c# - 日期格式为月份名称提供罗马数字

c# - MVC Controller 的 AJAX 参数不是 NULL?

c# - Func<int, int> 的数学等式