您的位置:首页 > 编程语言 > C#

c#的委托(3)之多重委托

2016-06-03 09:35 337 查看
1.执行顺序是从头到尾依次执行的:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Delegate
{
//multi-casting delegate
delegate void D(int x);

class Program
{
static void Main(string[] args)
{
D cd1 = new D(C.M1);
cd1(-1);
Console.WriteLine();

D cd2 = new D(C.M2);
cd2(-2);
Console.WriteLine();

//multi-casting delegate的一个效果
D cd3 = cd1 + cd2;
cd3(10);
Console.WriteLine();

C c = new C();
D cd4 = new D(c.M3);
cd3 += cd4;//cd3=cd1+cd2+cd4
cd3(30);
Console.WriteLine();

cd3 += cd1;
cd3(20);
Console.WriteLine();

cd3 -= cd1;
cd3(40);
Console.WriteLine();

cd3 -= cd2;
cd3 -= cd1;
cd3(50);
Console.WriteLine();

Console.ReadLine();
}

}

class C {
public static void M1(int i) {
Console.WriteLine("C.M1: " + i);
}

public static void M2(int i) {
Console.WriteLine("C.M2: " + i);
}

public void M3(int i) {
Console.WriteLine("C.M3: " + i);
}
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: