Як намунаи истифодаи делегатҳоро дар C# нишон диҳед.
sobes.tech AI
Ҷавоб аз AI
Delegates เป็นตัวชี้ตำแหน่งที่ปลอดภัยตามประเภทของเมธอด พวกเขาช่วยให้สามารถส่งผ่านเมธอดเป็นอาร์กิวเมนต์, กำหนดให้กับตัวแปร และเรียกใช้ผ่านตัวแปรเหล่านั้นได้ Delegates ถูกใช้อย่างแพร่หลายสำหรับสร้างเหตุการณ์, คอลแบ็ค และการเขียนโปรแกรมแบบอะซิงโครนัส
ตัวอย่างการใช้งาน delegate:
-
ประกาศ delegate: เรากำหนดลายเซ็นของเมธอดที่ delegate สามารถชี้ไปได้
public delegate int MyDelegate(int x, int y); -
นิยามเมธอด: เราสร้างเมธอดที่มีลายเซ็นตรงกับ delegate
public class Calculator { public int Add(int a, int b) { return a + b; } public int Subtract(int a, int b) { return a - b; } } -
การใช้งาน delegate: เราสร้างอินสแตนซ์ของ delegate และกำหนดให้มันชี้ไปยังเมธอด จากนั้นเรียกเมธอดผ่าน delegate
public class Program { public static void Main(string[] args) { Calculator calc = new Calculator(); // สร้างอินสแตนซ์ของ delegate และกำหนดให้ชี้ไปยังเมธอด Add MyDelegate del = new MyDelegate(calc.Add); // เรียกเมธอด Add ผ่าน delegate int result1 = del(10, 5); // result1 = 15 Console.WriteLine($"ผลลัพธ์ของการบวก: {result1}"); // กำหนด delegate ให้ชี้ไปยังเมธอด Subtract del = calc.Subtract; // เรียกเมธอด Subtract ผ่าน delegate int result2 = del(10, 5); // result2 = 5 Console.WriteLine($"ผลลัพธ์ของการลบ: {result2}"); } }
ในตัวอย่างนี้, MyDelegate สามารถชี้ไปยังเมธอดใดก็ได้ที่รับอาร์กิวเมนต์สองตัวเป็นจำนวนเต็ม (int x, int y) และคืนค่ากลับเป็นจำนวนเต็ม (int) เราสร้างอินสแตนซ์ delegate สองตัว (del), กำหนดให้ชี้ไปยังเมธอด Add และ Subtract, และใช้ delegate เรียกเมธอดเหล่านี้