Rumah >pembangunan bahagian belakang >Tutorial C#.Net >Apakah intipati delegasi c#
Wakil ialah penunjuk jenis selamat yang menunjuk kepada kaedah. Ia merangkum rujukan kaedah, membenarkan kaedah diluluskan sebagai parameter, dan menyediakan jaminan keselamatan jenis, memaksa tandatangan kaedah sepadan dengan definisi perwakilan.
Sifat perwakilan
Perwakilan pada asasnya ialah penunjuk selamat jenis yang menunjuk kepada kaedah.
Penjelasan terperinci
Dalam C#, perwakilan ialah kelas yang merangkum rujukan kepada kaedah. Ia membenarkan kaedah dihantar sebagai parameter kepada kaedah lain dan digunakan sebagai fungsi panggil balik. Perwakilan juga menyediakan keselamatan jenis kerana ia menguatkuasakan bahawa tandatangan kaedah sepadan dengan definisi perwakilan.
Sintaks perwakilan adalah seperti berikut:
<code class="c#">public delegate <return type> <delegate name>(<parameter list>);</code>
Di mana:
<return type>
是委托方法的返回类型。<delegate name>
是委托的名称。<parameter list>
是委托方法的参数列表。例如,要创建一个委托,指向一个名为 PrintMessage
的方法,可以这样写:
<code class="c#">public delegate void MessagePrinter(string message);</code>
使用委托,我们可以将方法作为参数传递给其他方法。例如:
<code class="c#">public void PrintMessageWithDelegate(MessagePrinter printer, string message) { printer(message); }</code>
在这个例子中,PrintMessageWithDelegate
方法接受一个 MessagePrinter
<senarai parameter>
ialah senarai parameter kaedah perwakilan. Sebagai contoh, untuk mencipta perwakilan yang menunjuk kepada kaedah bernama PrintMessage
, anda boleh menulis:
<code class="c#">MessagePrinter printer = (message) => Console.WriteLine(message);</code>
Menggunakan perwakilan, kami boleh menghantar kaedah sebagai parameter kepada kaedah lain. Contohnya:
rrreee🎜Dalam contoh ini, kaedahPrintMessageWithDelegate
menerima perwakilan MessagePrinter
sebagai parameter dan memanggil kaedah yang ditunjuk oleh perwakilan untuk mencetak mesej. 🎜🎜Delegasi juga membenarkan penciptaan kaedah tanpa nama menggunakan ungkapan lambda. Contohnya: 🎜rrreee🎜 Dalam contoh ini, ungkapan lambda mencipta perwakilan yang menunjuk kepada kaedah tanpa nama yang mencetak mesej yang diberikan ke konsol. 🎜Atas ialah kandungan terperinci Apakah intipati delegasi c#. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!