Delegate::Combine Method (Delegate^, Delegate^)
Concatenates the invocation lists of two delegates.
Assembly: mscorlib (in mscorlib.dll)
Parameters
- a
-
Type:
System::Delegate^
The delegate whose invocation list comes first.
- b
-
Type:
System::Delegate^
The delegate whose invocation list comes last.
Return Value
Type: System::Delegate^A new delegate with an invocation list that concatenates the invocation lists of a and b in that order. Returns a if b is null, returns b if a is a null reference, and returns a null reference if both a and b are null references.
| Exception | Condition |
|---|---|
| ArgumentException | Both a and b are not null, and a and b are not instances of the same delegate type. |
The invocation list can contain duplicate entries; that is, entries that refer to the same method on the same object.
Note |
|---|
Generic delegates that are assignment-compatible because of variance are not necessarily combinable. To be combinable, the types must match exactly. For example, suppose that a class named Derived is derived from a class named Base. A delegate of type Action<Base> (Action(Of Base) in Visual Basic) can be assigned to a variable of type Action<Derived>, as explained in Covariance and Contravariance in Generics, but the two delegates cannot be combined because the types do not match exactly. |
Combine is useful for creating event handlers that call multiple methods each time an event occurs.
when invoked late-bound through mechanisms such as Type::InvokeMember. Associated enumeration: ReflectionPermissionFlag::MemberAccess
Available since 8
.NET Framework
Available since 1.1
Portable Class Library
Supported in: portable .NET platforms
Silverlight
Available since 2.0
Windows Phone Silverlight
Available since 7.0
Windows Phone
Available since 8.1
