什么是+ =符号称为添加多个委托给委托对象?
问题描述:
public delegate void ExecuteCallback();
class Executioner private ExecuteCallback _doExecute;什么是+ =符号称为添加多个委托给委托对象?
public void AddMultiple()
{
// Add a delegate to MethodA
// This will work even if _doExecute is currently null
_doExecute += new Execute(MethodA);
// Add a delegate to MethodB also
_doExecute += new Execute(MethodB);
// Add a delegate to MethodC also
_doExecute += new Execute(MethodC);
}
public void MethodA()
{
//...
}
public void MethodB()
{
//...
}
public void MethodC()
{
//...
}
}
答
+=
通常被称为“加法赋值运算符”,但在代表的上下文...
+ =操作符也用于 指定一个将响应于被称为 方法事件;这种方法 被称为事件处理程序。在此上下文中使用 + =运算符的是 称为订阅一个 事件。
来自MSDN documentation here。
+0
注意,事件和委托的处理是完全不同的。 – 2010-08-19 10:54:14
答
这仅仅是通过C#调用Delegate.Combine
提供的简写。这也适用于事件,它调用的事件(add {}
块在C#事件声明,例如)的订阅的一部分。
我不相信有对组合在特定的名字 - 它只是二进制+和+ =运营商,从第7.8.4和C#规范的7.17.2,分别。
答
我可能指的是作为“登记”与委托/事件的事件处理程序。取决于上下文。
究竟什么是你的问题? – thecoop 2010-08-19 10:22:21