System.Delegate.Combine Method

Concatenates the invocation lists of two delegates.

Syntax

public static Delegate Combine (Delegate a, Delegate b)

Parameters

a
The delegate whose invocation list comes first.
b
The delegate whose invocation list comes last.

Returns

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.

Exceptions

TypeReason
ArgumentException a and b are not null and not of the same type.

Remarks

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.

Delegate.Combine(Delegate, Delegate) is useful for creating event handlers that call multiple methods each time an event occurs.

Requirements

Namespace: System
Assembly: mscorlib (in mscorlib.dll)
Assembly Versions: 1.0.5000.0, 2.0.0.0, 4.0.0.0