我可以一次添加多少个代理功能

时间:2013-11-12 12:59:35

标签: c#-4.0 delegates

我在C#中有一个Delegate方法,我必须引用多个函数... 代表可以一次指向多个功能吗? 如果是,一次可以指出多少个函数?

1 个答案:

答案 0 :(得分:1)

是的,可以同时为一个委托分配多个对象,当您调用委托时,将按照添加的顺序调用这些函数。 这称为MulticastDelegate委托

delegate void myDelegate();

void foo()
{
  Console.WriteLine("hello");
}

void bar()
{
  Console.WriteLine("world");
}

void Main()
{
  myDelegate d = foo;
  d+=bar;
  d();
}

可生产

hello
world

关于你可以用这种方式引用的最大函数数量 - 我找不到任何硬数字,但是一个简单的循环测试允许我添加foobar超过10,000次(在我感到无聊并点击“休息”之前所以我会说可能没有真正的实际限制,但我可能是错的。