深入理解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>
更多学习资源
深入学习:
以上是C# 的 Lambda 运算符如何简化委托创建和表达式主体成员?的详细内容。更多信息请关注PHP中文网其他相关文章!