Прочетете на английски Редактиране

Споделяне чрез


Delegate.Combine Method

Definition

Concatenates the invocation lists of the specified multicast (combinable) delegates.

Overloads

Combine(Delegate[])

Concatenates the invocation lists of an array of delegates.

Combine(ReadOnlySpan<Delegate>)

Concatenates the invocation lists of an span of delegates.

Combine(Delegate, Delegate)

Concatenates the invocation lists of two delegates.

Combine(Delegate[])

Source:
Delegate.cs
Source:
Delegate.cs
Source:
Delegate.cs

Concatenates the invocation lists of an array of delegates.

C#
public static Delegate Combine(params Delegate[] delegates);
C#
public static Delegate? Combine(params Delegate?[]? delegates);
C#
public static Delegate Combine(Delegate[] delegates);
C#
[System.Runtime.InteropServices.ComVisible(true)]
public static Delegate Combine(params Delegate[] delegates);

Parameters

delegates
Delegate[]

The array of delegates to combine.

Returns

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

Attributes

Exceptions

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

Remarks

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

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

Бележка

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, 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.

See also

Applies to

.NET 10 и други версии
Продукт Версии
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

Combine(ReadOnlySpan<Delegate>)

Concatenates the invocation lists of an span of delegates.

C#
public static Delegate? Combine(scoped ReadOnlySpan<Delegate?> delegates);

Parameters

delegates
ReadOnlySpan<Delegate>

The span of delegates to combine.

Returns

A new delegate with an invocation list that concatenates the invocation lists of the delegates in the delegates span. Returns null if delegates is null, if delegates contains zero elements, or if every entry in delegates is null.

Applies to

.NET 10 и .NET 9
Продукт Версии
.NET 9, 10

Combine(Delegate, Delegate)

Source:
Delegate.cs
Source:
Delegate.cs
Source:
Delegate.cs

Concatenates the invocation lists of two delegates.

C#
public static Delegate Combine(Delegate a, Delegate b);
C#
public static Delegate? Combine(Delegate? a, Delegate? b);

Parameters

a
Delegate

The delegate whose invocation list comes first.

b
Delegate

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

Both a and b are not null, and a and b are not instances of the same delegate type.

Remarks

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

Бележка

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, 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.

See also

Applies to

.NET 10 и други версии
Продукт Версии
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0