public delegate void TestDeleteType();
class Program
{
private static TestDeleteType dd = null;
static void Main(string[] args)
{
dd = Delegate.Combine(dd, new TestDeleteType( HaHa1)) as TestDeleteType;
dd();//HaHa1
Action a = null;
a = Delegate.Combine(a, new Action(HaHa1)) as Action;
a();//HaHa1
//a = Delegate.Combine(a, dd) as Action; 异常,必须要有相同的类型
//a();
Console.ReadKey();
}
static void HaHa1()
{
Console.WriteLine("HaHa1");
}
}可以使用Delegate.Combine()整合多个同一样类型的委托,可以看出作为参数的委托是可以为空的,返回一个Delegate类型,需要自己转换一下
也可以使用+直接联合委托,注意委托类型一定需要一致,如果有返回值,就只返回最后注册的函数的返回值。