Delegate::Combine Method (Delegate, Delegate)

Concatenates the invocation lists of two delegates.

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

public:
static Delegate^ Combine(
	Delegate^ a, 
	Delegate^ b
)

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 nullptr, returns b if a is a null reference, and returns a null reference if both a and b are null references.

ExceptionCondition
ArgumentException

Both a and b are not nullptr, 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.

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.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Portable Class Library

Supported in: Portable Class Library

.NET for Windows Store apps

Supported in: Windows 8

.NET for Windows Phone apps

Supported in: Windows Phone 8.1, Windows Phone 8, Silverlight 8.1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)

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

Was this page helpful?
(1500 characters remaining)
Thank you for your feedback
Show:
© 2014 Microsoft