`` `` `` Opérateur dans les propriétés et les initialiseurs de champ? "/> <code class=" language-csharp>public int MaxHealth => Memory[Address].IsValid ? Memory[Address].Read<int>(Offs.Life.MaxHp) : 0; </p> <p> Les principaux attributs de l'expression de comparaison et le champ avec le champ du champ, nous observons: </p> <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false"><code class="language-csharp">public int MaxHealth { get { return Memory[Address].IsValid ? Memory[Address].Read<int>(Offs.Life.MaxHp) : 0; } }</code>
La différence clé est le moyen d'obtenir la valeur. L'attribut principal de l'expression de l'expression Getter est appelé chaque fois que l'attribut d'accès est accessible, et le périphérique d'initialisation de champ n'est attribué qu'une seule fois pendant la création d'instance. pas l'expression de lambda
Il convient de noter que le membre principal de l'expression est différent de l'expression de lambda. Lambda Expression génère une instance ou une arbre d'expression confiée, et le membre principal de l'expression de l'expression indique que le compilateur est implémenté avec l'adhésion correspondante.
<code class="language-csharp">// 表达式主体成员属性 public int MaxHealth => x ? y : z; // 带有字段初始化器的字段 public int MaxHealth = x ? y : z;</code>
étendu aux autres types de membres
Les principaux membres de l'expression peuvent être appliqués à divers types d'adhésion, y compris les attributs, les index, les méthodes et les opérateurs. Cependant, ils ne conviennent pas aux types, événements ou champs imbriqués.
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!