" in Eigenschaften und Methoden C# Code verstehen, wird der Operator "=>" in expressionsgeprägten Mitgliedern verwendet, die eine ..."/> " in Eigenschaften und Methoden C# Code verstehen, wird der Operator "=>" in expressionsgeprägten Mitgliedern verwendet, die eine ...">

Heim >Backend-Entwicklung >C++ >Was ist der Unterschied zwischen C#'S `=>` Operator in Eigenschaften und Feldinitialisierern?

Was ist der Unterschied zwischen C#'S `=>` Operator in Eigenschaften und Feldinitialisierern?

DDD
DDDOriginal
2025-01-30 23:06:12315Durchsuche

` `` `` `` `` `~ in Eigenschaften und Feldinitialisierern? " /> What's the Difference Between C#'s `=>
</p> <> Der Unterschied zwischen dem operativen Charakter im Attribut- und Feldinitialisierungsgerät <p> <strong>
<code>=></code> c# Code wird verwendet, um die Hauptelemente des Ausdrucks auszudrücken, was eine einfache Möglichkeit bietet, Attribute oder Methoden zu definieren. Im Gegensatz zu Lambda -Ausdrücken erzeugen die Hauptmitglieder des Ausdrucks bestimmte Mitglieder hinter den Kulissen. </strong>
</p> <<> Das Attribut von <p> Getter <code>=></code> </p>
<p> Das folgende Codebeispiel zeigt die Hauptattribute des Ausdrucks Getter: <strong>
<code>=></code>
</strong> Der Compiler interpretiert diese Aussage als Eigenschaft, und sein Getter definiert wie folgt: </p>
<p>
</p> <字> Die Differenz zwischen den Feldern des Feldinitialisierers <pre class=<code class=" language-csharp>public int MaxHealth => Memory[Address].IsValid ? Memory[Address].Read<int>(Offs.Life.MaxHp) : 0; </p> <p> </p> Die Hauptattribute des Vergleichsausdrucks und des Feldes mit dem Feld des Feldes beobachten wir: <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>

Der Schlüsselunterschied ist der Weg, um den Wert zu erhalten. Das Hauptattribut des Expression des Expression Getters wird jedes Mal auf das Zugriffsattribut aufgerufen, und das Feldinitialisierungsgerät wird nur einmal während der Instanzerstellung zugeordnet.

nicht lambda Ausdruck

<code class="language-csharp">// 表达式主体成员属性
public int MaxHealth => x ? y : z;

// 带有字段初始化器的字段
public int MaxHealth = x ? y : z;</code>
Es ist zu beachten, dass sich das Hauptmitglied des Ausdrucks vom Lambda -Ausdruck unterscheidet. Der Lambda -Ausdruck erzeugt eine anvertraute Instanz- oder Expressionsbaum, und das Hauptelement des Ausdrucks des Ausdrucks zeigt an, dass der Compiler mit entsprechender Mitgliedschaft implementiert wird.

auf andere Mitgliedstypen

erweitert Die Hauptmitglieder des Ausdrucks können auf verschiedene Mitgliedstypen angewendet werden, einschließlich Attributen, Indizes, Methoden und Operatoren. Sie sind jedoch nicht für verschachtelte Typen, Ereignisse oder Felder geeignet.

Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen C#'S `=>` Operator in Eigenschaften und Feldinitialisierern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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