Ler en inglés

Compartir por


Delegate.Combine Método

Definición

Concatena las listas de invocación de los delegados de multidifusión (combinables) especificados.

Sobrecargas

Combine(Delegate[])

Concatena las listas de invocación de una matriz de delegados.

Combine(ReadOnlySpan<Delegate>)

Concatena las listas de invocación de un intervalo de delegados.

Combine(Delegate, Delegate)

Concatena las listas de invocación de dos delegados.

Combine(Delegate[])

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

Concatena las listas de invocación de una matriz de delegados.

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);

Parámetros

delegates
Delegate[]

Matriz de delegados que se van a combinar.

Devoluciones

Nuevo delegado con una lista de invocación que concatena las listas de invocación de los delegados de la matriz delegates. Devuelve null si delegates es null, si delegates contiene cero elementos o si cada entrada de delegates es null.

Atributos

Excepciones

No todas las entradas que no son NULL en delegates son instancias del mismo tipo de delegado.

Comentarios

Si la matriz delegates contiene entradas que son null, esas entradas se omiten.

La lista de invocación puede contener entradas duplicadas; es decir, entradas que hacen referencia al mismo método en el mismo objeto.

Nota

Los delegados genéricos compatibles con la asignación debido a la varianza no son necesariamente combinables. Para poder combinarse, los tipos deben coincidir exactamente. Por ejemplo, supongamos que una clase denominada Derived se deriva de una clase denominada Base. Se puede asignar un delegado de tipo Action<Base> (Action(Of Base) en Visual Basic) a una variable de tipo Action<Derived>, como se explica en Covariance y Contravariance, pero los dos delegados no se pueden combinar porque los tipos no coinciden exactamente.

Combine resulta útil para crear controladores de eventos que llaman a varios métodos cada vez que se produce un evento.

Consulte también

Se aplica a

.NET 10 e outras versións
Produto Versións
.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>)

Concatena las listas de invocación de un intervalo de delegados.

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

Parámetros

delegates
ReadOnlySpan<Delegate>

Intervalo de delegados que se van a combinar.

Devoluciones

Nuevo delegado con una lista de invocación que concatena las listas de invocación de los delegados en el intervalo de delegates. Devuelve null si delegates es null, si delegates contiene cero elementos o si cada entrada de delegates es null.

Se aplica a

.NET 10 e .NET 9
Produto Versións
.NET 9, 10

Combine(Delegate, Delegate)

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

Concatena las listas de invocación de dos delegados.

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

Parámetros

a
Delegate

Delegado cuya lista de invocación viene primero.

b
Delegate

Delegado cuya lista de invocación viene por última vez.

Devoluciones

Un nuevo delegado con una lista de invocación que concatena las listas de invocación de a y b en ese orden. Devuelve a si b es null, devuelve b si a es una referencia nula y devuelve una referencia nula si a y b son referencias nulas.

Excepciones

Tanto a como b no son nully a y b no son instancias del mismo tipo de delegado.

Comentarios

La lista de invocación puede contener entradas duplicadas; es decir, entradas que hacen referencia al mismo método en el mismo objeto.

Nota

Los delegados genéricos compatibles con la asignación debido a la varianza no son necesariamente combinables. Para poder combinarse, los tipos deben coincidir exactamente. Por ejemplo, supongamos que una clase denominada Derived se deriva de una clase denominada Base. Se puede asignar un delegado de tipo Action<Base> (Action(Of Base) en Visual Basic) a una variable de tipo Action<Derived>, como se explica en Covariance y Contravariance, pero los dos delegados no se pueden combinar porque los tipos no coinciden exactamente.

Combine resulta útil para crear controladores de eventos que llaman a varios métodos cada vez que se produce un evento.

Consulte también

Se aplica a

.NET 10 e outras versións
Produto Versións
.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