首页 >后端开发 >C++ >C# 的 Lambda 运算符如何简化委托创建和表达式主体成员?

C# 的 Lambda 运算符如何简化委托创建和表达式主体成员?

Linda Hamilton
Linda Hamilton原创
2025-01-11 19:56:42721浏览

How Can C#'s Lambda Operator Simplify Delegate Creation and Expression-Bodied Members?

深入理解C#中的Lambda运算符

C#中的Lambda运算符("=>")是一种强大的语法糖,它简化了匿名委托和表达式主体的创建。

Lambda表达式

Lambda表达式为匿名方法提供了一种更简洁的替代方案,无需显式声明委托。它们通常用作委托类型的Lambda参数,例如Func<T, TResult>Action<T>

例如,创建一个返回人员姓名的委托:

传统委托写法:

<code class="language-csharp">Func<Person, string> nameProjection = delegate (Person p) { return p.Name; };</code>

使用Lambda语法简化:

<code class="language-csharp">Func<Person, string> nameProjection = p => p.Name;</code>

表达式主体成员

从C# 6开始,Lambda语法扩展到支持属性和方法的表达式主体成员。这允许使用简化的表达式定义属性或方法的实现,而无需使用传统的代码块。

例如,定义一个IsValid属性,检查人员姓名是否非空且ID不为-1:

<code class="language-csharp">public int IsValid => name != null && id != -1;</code>

同样,可以使用Lambda语法实现GetHashCode方法:

<code class="language-csharp">public int GetHashCode() => id.GetHashCode();</code>

更多学习资源

深入学习:

  • 匿名方法和Lambda表达式的区别?
  • 什么是Lambda表达式?
  • 为什么在C#中应该使用Lambda表达式?

以上是C# 的 Lambda 运算符如何简化委托创建和表达式主体成员?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn