C# delegasi adalah serupa dengan penunjuk fungsi dalam C atau C++. Perwakilan ialah pembolehubah jenis rujukan yang memegang rujukan kepada kaedah. Rujukan boleh ditukar semasa masa jalan.
Sintaks untuk mengisytiharkan perwakilan -
delegate <return type> <delegate-name> <parameter list>
Sekarang mari lihat cara untuk membuat instantiate perwakilan dalam C#.
Selepas mengisytiharkan jenis perwakilan, anda mesti menggunakan kata kunci baharu untuk mencipta objek perwakilan dan mengaitkannya dengan kaedah tertentu. Apabila anda membuat perwakilan, argumen yang dihantar kepada ungkapan baharu ditulis seperti panggilan kaedah, tetapi tanpa argumen kaedah.
public delegate void printString(string s); ... printString ps1 = new printString(WriteToScreen); printString ps2 = new printString(WriteToFile);
Berikut ialah contoh pengisytiharan dan pengisytiharan perwakilan dalam C# -
Demonstrasi Langsung
using System; delegate int NumberChanger(int n); namespace DelegateAppl { class TestDelegate { static int num = 10; public static int AddNum(int p) { num += p; return num; } public static int MultNum(int q) { num *= q; return num; } public static int getNum() { return num; } static void Main(string[] args) { //create delegate instances NumberChanger nc1 = new NumberChanger(AddNum); NumberChanger nc2 = new NumberChanger(MultNum); //calling the methods using the delegate objects nc1(25); Console.WriteLine("Value of Num: {0}", getNum()); nc2(5); Console.WriteLine("Value of Num: {0}", getNum()); Console.ReadKey(); } } }
Value of Num: 35 Value of Num: 175
Atas ialah kandungan terperinci Bagaimana untuk mengisytiharkan dan mengisytiharkan perwakilan dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!