Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C#

Multicasting Delegates ใน C#

Delegate ที่เก็บ Reference ของมากกว่าหนึ่งเมธอด เรียกว่า Multicasting Delegate

ตัวอย่าง

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 เดิม: delegate void myDelegate(int val1, int val2);

ใช้ += เพิ่มเมธอด, -= ลบเมธอด