This documentation is archived and is not being maintained.

Delegate::Combine Method (array<Delegate>)

Concatenates the invocation lists of an array of delegates.

Namespace:  System
Assembly:  mscorlib (in mscorlib.dll)

[ComVisibleAttribute(true)]
public:
static Delegate^ Combine(
	... array<Delegate^>^ delegates
)

Parameters

delegates
Type: array<System::Delegate>
The array of delegates to combine.

Return Value

Type: System::Delegate
A new delegate with an invocation list that concatenates the invocation lists of the delegates in the delegates array. Returns nullptr if delegates is nullptr, if delegates contains zero elements, or if every entry in delegates is nullptr.

ExceptionCondition
ArgumentException

Not all the non-null entries in delegates are instances of the same delegate type.

If the delegates array contains entries that are nullptr, those entries are ignored.

The invocation list can contain duplicate entries; that is, entries that refer to the same method on the same object.

NoteNote

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.

.NET Framework

Supported in: 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.
Show: