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表達式:C#'s` =>`操作員用法有什麼區別?的詳細內容。更多資訊請關注PHP中文網其他相關文章!