` Mean dalam ahli-ahli C# Expression-Bodied? " /> semasa menghadapi kod berikut:
Adalah penting untuk memahami bahawa ini bukan ekspresi lambda, tetapi ahli ekspresi.ahli ungkapan
<code class="language-csharp">public int MaxHealth => Memory[Address].IsValid ? Memory[Address].Read<int>(Offs.Life.MaxHp) : 0;</code>
Apabila pengkompil menemui ahli badan ekspresi, ia akan mengubahnya menjadi getter:
ahli badan ekspresi dan medan dengan peranti inisialisasi
perbezaan antara ungkapan ungkapan dan medan dengan peranti inisialisasi dapat dijelaskan dengan membandingkan kandungan berikut:
<code class="language-csharp">public int MaxHealth { get { return Memory[Address].IsValid ? Memory[Address].Read<int>(Offs.Life.MaxHp) : 0; } }</code>
Ekspresi ungkapan adalah getter yang memanggilnya setiap kali anda mengakses atribut. Sebaliknya, medan dimulakan sekali apabila instantiated.
Candy Tatabahasa
<code class="language-csharp">// 表达式体成员属性 public int MaxHealth => x ? y : z;</code>
<code class="language-csharp">// 带有字段初始化器的字段 public int MaxHealth = x ? y : z;</code>
tiada pernyataan pulangan (ekspresi pulangan tersembunyi) tiada blok ayat (badan utama adalah ungkapan tunggal)
tidak perlu "mendapatkan" kata kunci (tersembunyi oleh tatabahasa ekspresi ungkapan)
Walaupun mereka serupa dengan ekspresi lambda dalam "= & gt;", mereka bukan ekspresi lambda sebenar. Ahli -ahli badan ekspresi hanya menunjukkan bahawa pengkompil menghasilkan ahli tertentu di belakang tabir.
Atas ialah kandungan terperinci Apa maksud `=>` maksud dalam ahli-ahli C# Expression?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!