Delegate.Combine Método

Definição

Concatena as listas de invocação dos delegados multicast (combináveis) especificados.

Sobrecargas

Name Description
Combine(Delegate[])

Concatena as listas de invocações de um array de delegados.

Combine(Delegate, Delegate)

Concatena as listas de invocações de dois delegados.

Combine(Delegate[])

Concatena as listas de invocações de um array de delegados.

public:
 static Delegate ^ Combine(... cli::array <Delegate ^> ^ delegates);
public:
 static Delegate ^ Combine(cli::array <Delegate ^> ^ delegates);
public static Delegate Combine(params Delegate[] delegates);
public static Delegate Combine(Delegate[] delegates);
[System.Runtime.InteropServices.ComVisible(true)]
public static Delegate Combine(params Delegate[] delegates);
static member Combine : Delegate[] -> Delegate
[<System.Runtime.InteropServices.ComVisible(true)>]
static member Combine : Delegate[] -> Delegate
Public Shared Function Combine (ParamArray delegates As Delegate()) As Delegate
Public Shared Function Combine (delegates As Delegate()) As Delegate

Parâmetros

delegates
Delegate[]

A variedade de delegados a combinar.

Devoluções

Um novo delegado com uma lista de invocações que concatena as listas de invocações dos delegados no delegates array. Devolve se é , se delegates contém zero elementos, ou se cada entrada em delegates é null.nulldelegatesnull

Atributos

Exceções

Nem todas as entradas não-nulas em delegates são instâncias do mesmo tipo de delegado.

Observações

Se o delegates array contiver entradas que são null, essas entradas são ignoradas.

A lista de invocações pode conter entradas duplicadas; ou seja, entradas que se referem ao mesmo método no mesmo objeto.

Note

Delegados genéricos que são compatíveis com atribuição devido à variância não são necessariamente combináveis. Para serem combináveis, os tipos têm de coincidir exatamente. Por exemplo, suponha que uma classe nomeada Derived é derivada de uma classe nomeada Base. Um delegado do tipo Action<Base> (Action(Of Base) em Visual Basic) pode ser atribuído a uma variável do tipo Action<Derived>, conforme explicado em Covariância e Contravariância, mas os dois delegados não podem ser combinados porque os tipos não correspondem exatamente.

Combine é útil para criar manipuladores de eventos que chamam múltiplos métodos cada vez que um evento ocorre.

Ver também

Aplica-se a

Combine(Delegate, Delegate)

Concatena as listas de invocações de dois delegados.

public:
 static Delegate ^ Combine(Delegate ^ a, Delegate ^ b);
public static Delegate Combine(Delegate a, Delegate b);
static member Combine : Delegate * Delegate -> Delegate
Public Shared Function Combine (a As Delegate, b As Delegate) As Delegate

Parâmetros

a
Delegate

O delegado cuja lista de invocações vem primeiro.

b
Delegate

O delegado cuja lista de invocações vem por último.

Devoluções

Um novo delegado com uma lista de invocações que concatena as listas de invocações de a e b nessa ordem. Devolve a se b for null, devolve b se a for uma referência nula, e devolve uma referência nula se tanto a como b forem referências nulas.

Exceções

Tanto a como não b são null, e a e b não são instâncias do mesmo tipo de delegado.

Observações

A lista de invocações pode conter entradas duplicadas; ou seja, entradas que se referem ao mesmo método no mesmo objeto.

Note

Delegados genéricos que são compatíveis com atribuição devido à variância não são necessariamente combináveis. Para serem combináveis, os tipos têm de coincidir exatamente. Por exemplo, suponha que uma classe nomeada Derived é derivada de uma classe nomeada Base. Um delegado do tipo Action<Base> (Action(Of Base) em Visual Basic) pode ser atribuído a uma variável do tipo Action<Derived>, conforme explicado em Covariância e Contravariância, mas os dois delegados não podem ser combinados porque os tipos não correspondem exatamente.

Combine é útil para criar manipuladores de eventos que chamam múltiplos métodos cada vez que um evento ocorre.

Ver também

Aplica-se a