Multicasting
At times it is desirable to multicast: to call two implementing methods through a single delegate. This becomes particularly important when handling events (discussed later in this chapter).
With multicasting, you create a single delegate that calls multiple encapsulated methods. For example, when a button is pressed, you might want to take more than one action. You could implement this by giving the button a collection of delegates, but it is cleaner and easier to create a single multicast delegate.
Two delegates can be combined with the
addition
operator (+
). The result is a new multicast
delegate that invokes both of the original implementing methods. For
example, assuming Writer and Logger are delegates, the following line
will combine them and produce a new multicast delegate named
myMulticastDelegate:
myMulticastDelegate = Writer + Logger;
You can add delegates to a multicast delegate using the
plus-equals (+=
)
operator. This operator adds the delegate on the right side of the
operator to the multicast delegate on the left. For example, assuming
Transmitter and myMulticastDelegate are delegates, the following line
adds Transmitter to myMulticastDelegate:
myMulticastDelegate += Transmitter;
To see how multicast delegates are created and used, let’s walk through a complete example. Example 19-3 is followed by a complete analysis.
Example 19-3. Multicast delegates
using System; namespace DelegatesAndEvents { public class MyClassWithDelegate { // The delegate ...
Get Learning C# now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.