Multicasting
At times, it is desirable to call two (or more) implementing methods through a single delegate. This becomes particularly important when handling events (discussed later in this chapter).
The goal is to have a single delegate that invokes more than one method. This is different from having a collection of delegates, each of which invokes a single method. In the previous example, the collection was used to order the various delegates. It was possible to add a single delegate to the collection more than once, and to use the collection to reorder the delegates to control their order of invocation.
With multicasting, you create a single delegate that will call 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 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access