Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Apakah intipati delegasi c#

Apakah intipati delegasi c#

下次还敢
下次还敢asal
2024-04-04 15:00:231003semak imbas

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.

Apakah intipati delegasi c#

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:

  • ialah jenis pulangan kaedah perwakilan.
  • <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 ialah nama perwakilan.

<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, kaedah PrintMessageWithDelegate 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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:Apakah kegunaan delegasi c#?Artikel seterusnya:Apakah kegunaan delegasi c#?