所謂委託的加法就是

public delegate void MyDelegate();
public class program
{
    static void Main()
    {
        MyDelegate my1 = new MyDelegate(MyMethod1);
        MyDelegate my2 = new MyDelegate(MyMethod2);
        MyDelegate my3 = my1 + my2;
        my3();
        Console.ReadKey();
    }

    public static void MyMethod1()
    {
        Console.WriteLine("method1");
    }
    public static void MyMethod2()
    {
        Console.WriteLine("method2");
    }
}

它能將二個delegate合在一起,另外也可以這樣寫

public delegate void MyDelegate();
public class program
{
    static void Main()
    {
        MyDelegate my1 = new MyDelegate(MyMethod1);
        my1 += MyMethod2;
        my1();
        Console.ReadKey();
    }

    public static void MyMethod1()
    {
        Console.WriteLine("method1");
    }
    public static void MyMethod2()
    {
        Console.WriteLine("method2");
    }
}

減法的概念是一樣的,就不多說了

但使用委託加減,有一些觀念要注意

1. 委託加減的先後順序將是執行的先後順序.

2. 當你的委託有返回值或out值時,只有最後一個委託才會生效.

 

arrow
arrow

    痞客興 發表在 痞客邦 留言(0) 人氣()