Heim > Backend-Entwicklung > C++ > Was bedeutet `=>` in C# Expressionsmodie-Mitgliedern?

Was bedeutet `=>` in C# Expressionsmodie-Mitgliedern?

Mary-Kate Olsen
Freigeben: 2025-01-30 23:26:11
Original
626 Leute haben es durchsucht

` gemein in C# Expressionskodierten Mitgliedern? " /> What Does `=>
</p> <性>

Wenn Sie den folgenden Code begegnen:

Es ist wichtig zu verstehen, dass dies kein Lambda -Ausdruck ist, sondern ein Mitglied eines Ausdrucks.

<code class="language-csharp">public int MaxHealth =>
        Memory[Address].IsValid ? 
        Memory[Address].Read<int>(Offs.Life.MaxHp) : 
        0;</code>
Nach dem Login kopieren
Mitglied des Ausdrucks

Wenn der Compiler auf ein Mitglied des Ausdruckskörpers trifft, wandelt er es in einen Getter um:

Mitglieder des Ausdrucksgremiums und der Felder mit Initialisierungsvorrichtung

<code class="language-csharp">public int MaxHealth
{
    get
    {
        return Memory[Address].IsValid ? Memory[Address].Read<int>(Offs.Life.MaxHp) : 0;
    }
}</code>
Nach dem Login kopieren
Der Unterschied zwischen der Expression des Ausdrucks und den Feldern mit dem Initialisierungsgerät kann durch Vergleich des folgenden Inhalts erklärt werden:

Der Ausdruck des Ausdrucks ist ein Getter, der ihn jedes Mal aufruft, wenn Sie auf das Attribut zugreifen. Andererseits wird das Feld beim Instanziieren einmal initialisiert.

Grammatik -Süßigkeiten
<code class="language-csharp">// 表达式体成员属性
public int MaxHealth => x ? y : z;</code>
Nach dem Login kopieren
<code class="language-csharp">// 带有字段初始化器的字段
public int MaxHealth = x ? y : z;</code>
Nach dem Login kopieren

Die Mitglieder des Ausdrucks sind reiner Grammatikzucker, und es gibt keine zusätzliche Funktion außer der vorhandenen Funktion. Sie liefern den folgenden Inhalt mit einer einfacheren Syntax, um Mitglieder zuzuordnen:

Keine Rückgabeanweisung (verborgener Rückgabebereich)

kein Satzblock (der Hauptkörper ist ein einzelner Ausdruck)

müssen keine Schlüsselwörter "erhalten" (versteckt durch die Grammatik des Ausdrucks des Ausdrucks)
  • Zusätzliche Beschreibung
  • Die Mitglieder der Expressionsorganisation eignen sich auch für Indizes, Methoden, Operatoren, Konstruktoren und Endors (in C# 7.0 oder höher).

Sie sind nicht für verschachtelte Typen, Ereignisse oder Felder geeignet. Obwohl sie Lambda -Ausdrücken in "= & gt;" ähnlich sind, sind sie keine echten Lambda -Ausdrücke. Mitglieder des Ausdrucksgremiums weisen nur an, dass der Compiler ein bestimmtes Mitglied hinter den Kulissen erzeugt.

    Das obige ist der detaillierte Inhalt vonWas bedeutet `=>` in C# Expressionsmodie-Mitgliedern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

    Quelle:php.cn
    Erklärung dieser Website
    Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
    Neueste Artikel des Autors
    Beliebte Tutorials
    Mehr>
    Neueste Downloads
    Mehr>
    Web-Effekte
    Quellcode der Website
    Website-Materialien
    Frontend-Vorlage