屬性或方法中的“=>”含義
在遇到如下代碼時:
<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中文網其他相關文章!