ผู้รับมอบสิทธิ์ที่มีการอ้างอิงมากกว่าหนึ่งวิธีเรียกว่าผู้รับมอบสิทธิ์แบบหลายผู้รับ
เรามาดูตัวอย่างกัน −
ตัวอย่าง
using System; delegate void myDelegate(int val1, int val2); public class Demo { public static void CalAdd(int val1, int val2) { Console.WriteLine("{0} + {1} = {2}", val1, val2, val1 + val2); } public static void CalSub(int val1, int val2) { Console.WriteLine("{0} - {1} = {2}", val1, val2, val1 - val2); } } public class Program { static void Main() { myDelegate d = new myDelegate(Demo.CalAdd); d += new myDelegate(Demo.CalSub); d(45, 70); d -= new myDelegate(Demo.CalAdd); d(95, 70); d += new myDelegate(Demo.CalSub); d(88, 6); d -= new myDelegate(Demo.CalAdd); d(40, 20); Console.Read(); } }
ในตัวอย่างข้างต้น ผู้แทนของเราคือ −
delegate void myDelegate(int val1, int val2);
เมื่อใช้สิ่งต่อไปนี้ เราได้ตั้งค่าการอ้างอิงมากกว่าหนึ่งวิธีในผู้รับมอบสิทธิ์ เช่น CalAdd() และ CalSub() -
myDelegate d = new myDelegate(Demo.CalAdd); d += new myDelegate(Demo.CalSub); d(45, 70); d -= new myDelegate(Demo.CalAdd); d(95, 70); d += new myDelegate(Demo.CalSub); d(88, 6); d -= new myDelegate(Demo.CalAdd); d(40, 20);