membre de l'expression
<code class="language-csharp">public int MaxHealth => Memory[Address].IsValid ? Memory[Address].Read<int>(Offs.Life.MaxHp) : 0;</code>
Lorsque le compilateur rencontre un membre du corps d'expression, il le convertira en un Getter:
membres du corps d'expression et des champs avec le dispositif d'initialisation
La différence entre l'expression de l'expression et les champs avec le dispositif d'initialisation peut être expliquée en comparant le contenu suivant:
<code class="language-csharp">public int MaxHealth { get { return Memory[Address].IsValid ? Memory[Address].Read<int>(Offs.Life.MaxHp) : 0; } }</code>
L'expression de l'expression est un getteur qui l'appelle chaque fois que vous accédez à l'attribut. D'un autre côté, le champ est initialisé une fois lorsqu'il est instancié.
Candy grammaire
<code class="language-csharp">// 表达式体成员属性 public int MaxHealth => x ? y : z;</code>
<code class="language-csharp">// 带有字段初始化器的字段 public int MaxHealth = x ? y : z;</code>
Aucune instruction de retour (expression de retour cachée) Aucun bloc de phrase (le corps principal est une seule expression)
Pas besoin de "obtenir" des mots clés (cachés par la grammaire de l'expression de l'expression)
Bien qu'ils soient similaires aux expressions de lambda dans "= & gt;", ce ne sont pas de véritables expressions de lambda. Les membres du corps d'expression indiquent seulement que le compilateur génère un membre spécifique dans les coulisses.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!