Maison > développement back-end > C++ > Que signifie `=>` dans les membres du C # à expression d'expression?

Que signifie `=>` dans les membres du C # à expression d'expression?

Mary-Kate Olsen
Libérer: 2025-01-30 23:26:11
original
626 Les gens l'ont consulté

`MANGE DANS les membres du C # à expression expression? "/> What Does `=>
</p> <性> lors de la rencontre du code suivant:

Il est important de comprendre que ce n'est pas l'expression de Lambda, mais un membre d'une expression.

membre de l'expression
<code class="language-csharp">public int MaxHealth =>
        Memory[Address].IsValid ? 
        Memory[Address].Read<int>(Offs.Life.MaxHp) : 
        0;</code>
Copier après la connexion

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

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>
Copier après la connexion
<code class="language-csharp">// 带有字段初始化器的字段
public int MaxHealth = x ? y : z;</code>
Copier après la connexion
Les membres de l'expression sont du sucre de grammaire pur et il n'y a pas de fonction supplémentaire sauf la fonction existante. Ils fournissent le contenu suivant avec une syntaxe plus simple pour attribuer les membres:

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)

  • Description supplémentaire
  • Les membres du corps d'expression conviennent également aux indices, méthodes, opérateurs, constructeurs et endos (en C # 7.0 ou plus).
Ils ne conviennent pas aux types, événements ou champs imbriqués.

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!

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal