2010-08-19 74 views
0
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

回答

2

+=通常被稱爲「加法賦值運算符」,但在代表的上下文...

+ =操作符也用於 指定一個將響應於被稱爲 方法事件;這種方法 被稱爲事件處理程序。在此上下文中使用 + =運算符的是 稱爲訂閱一個 事件。

來自MSDN documentation here

How to: Subscribe to and Unsubscribe from Events

+0

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

2

這僅僅是通過C#調用Delegate.Combine提供的簡寫。這也適用於事件,它調用的事件(add {}塊在C#事件聲明,例如)的訂閱的一部分。

我不相信有對組合在特定的名字 - 它只是二進制+和+ =運營商,從第7.8.4和C#規範的7.17.2,分別。

0

我可能指的是作爲「登記」與委託/事件的事件處理程序。取決於上下文。

相關問題