Maison > développement back-end > C++ > Quelle est la différence entre l'opérateur `=>` de C # dans les propriétés et les initialiseurs de champ?

Quelle est la différence entre l'opérateur `=>` de C # dans les propriétés et les initialiseurs de champ?

DDD
Libérer: 2025-01-30 23:06:12
original
308 Les gens l'ont consulté

`` `` `` Opérateur dans les propriétés et les initialiseurs de champ? "/> What's the Difference Between C#'s `=>
</p> <> La différence entre le caractère opérationnel dans l'attribut et le dispositif d'initialisation du champ <p>
<strong> C # Le code est utilisé pour exprimer les principaux membres de l'expression, qui fournit un moyen simple de définir des attributs ou des méthodes. Contrairement aux expressions de Lambda, les principaux membres de l'expression génèrent des membres spécifiques dans les coulisses. <code>=></code>
</strong> <<> L'attribut de </p> Getter <p> <code>=></code>
</p> L'exemple de code suivant illustre les principaux attributs de l'expression Getter: <p>
<strong>
<code>=></code> Le compilateur interprète cette déclaration en tant que propriété, et son Getter définit comme suit: </strong>
</p>
<p> <字> La différence entre les champs de l'initialisateur de champs </p> <pre class=<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>

Copier après la connexion

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>
Copier après la connexion

é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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Recommandations populaires
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal