属性或方法中的“=>”含义
在遇到如下代码时:
<code class="language-csharp">public int MaxHealth => Memory[Address].IsValid ? Memory[Address].Read<int>(Offs.Life.MaxHp) : 0;</code>
重要的是要理解,这不是 lambda 表达式,而是一个表达式体成员。
表达式体成员
当编译器遇到表达式体属性成员时,它会将其转换为一个 getter:
<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 = x ? y : z;</code>
表达式体属性是一个 getter,每次访问该属性时都会调用它。另一方面,字段在实例化类型时只初始化一次。
语法糖
表达式体成员纯粹是语法糖,除了现有功能之外没有任何附加功能。它们通过允许以下内容为属性成员提供更简洁的语法:
附加说明
以上是`=>`在c#表达型成员中是什么意思?的详细内容。更多信息请关注PHP中文网其他相关文章!