首页 > 后端开发 > C++ > 表达式成员与lambda表达式:C#'s` =>`操作员用法有什么区别?

表达式成员与lambda表达式:C#'s` =>`操作员用法有什么区别?

Patricia Arquette
发布: 2025-01-30 23:16:10
原创
330 人浏览过

Expression-Bodied Members vs. Lambda Expressions: What's the Difference in C#'s `=>` Operator Usage?

C# 中 => 运算符的双重身份:表达式成员体与 Lambda 表达式

在 C# 中,=> 运算符具有两种截然不同的用途:

表达式成员体

在表达式成员体中,=> 运算符将属性或方法名与其主体分隔开来。此语法允许使用单个表达式定义成员,无需使用大括号和单独的 get/set 块。

<code class="language-csharp">public int MaxHealth => Memory[Address].IsValid ? Memory[Address].Read<int>(Offs.Life.MaxHp) : 0;</code>
登录后复制

等效于:

<code class="language-csharp">public int MaxHealth
{
    get
    {
        return Memory[Address].IsValid ? Memory[Address].Read<int>(Offs.Life.MaxHp) : 0;
    }
}</code>
登录后复制

字段初始化

在字段初始化中,不使用 => 运算符。而是使用传统语法为字段赋值。

<code class="language-csharp">public int MaxHealth = x ? y : z;</code>
登录后复制

等效于:

<code class="language-csharp">public int MaxHealth; // 字段声明
public int MaxHealth = x ? y : z; // 字段赋值</code>
登录后复制

关键区别:

表达式成员体和字段初始化之间的关键区别在于作用域和求值时机。表达式成员体定义一个属性 getter(或方法体),每次访问属性时都会执行。另一方面,字段初始化在实例化类型时只设置一次字段值。

Lambda 表达式

在 Lambda 表达式中,=> 运算符用于将匿名函数的输入参数与其主体分隔开来。Lambda 表达式用于定义可以作为参数传递给其他函数的匿名方法或表达式。它们与表达式成员体无关。

以上是表达式成员与lambda表达式:C#'s` =>`操作员用法有什么区别?的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板