` `` `` `` `` `~ in Eigenschaften und Feldinitialisierern?
" /> <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: <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>
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>
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!