什么是+ =符号称为添加多个委托给委托对象?

问题描述:

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() 
{ 
    //... 
} 

}

+1

究竟什么是你的问题? – thecoop 2010-08-19 10:22:21

+=通常被称为“加法赋值运算符”,但在代表的上下文...

+ =操作符也用于 指定一个将响应于被称为 方法事件;这种方法 被称为事件处理程序。在此上下文中使用 + =运算符的是 称为订阅一个 事件。

来自MSDN documentation here

How to: Subscribe to and Unsubscribe from Events

+0

注意,事件和委托的处理是完全不同的。 – 2010-08-19 10:54:14

这仅仅是通过C#调用Delegate.Combine提供的简写。这也适用于事件,它调用的事件(add {}块在C#事件声明,例如)的订阅的一部分。

我不相信有对组合在特定的名字 - 它只是二进制+和+ =运营商,从第7.8.4和C#规范的7.17.2,分别。

我可能指的是作为“登记”与委托/事件的事件处理程序。取决于上下文。