Sdílet prostřednictvím


Delegate.Combine Metoda

Definice

Zřetězí seznamy vyvolání zadaných delegátů vícesměrového vysílání (kombinovatelné).

Přetížení

Combine(Delegate[])

Zřetězí seznamy vyvolání pole delegátů.

Combine(ReadOnlySpan<Delegate>)

Zřetězí seznamy vyvolání rozsahu delegátů.

Combine(Delegate, Delegate)

Zřetězí seznamy vyvolání dvou delegátů.

Combine(Delegate[])

Zdroj:
Delegate.cs
Zdroj:
Delegate.cs
Zdroj:
Delegate.cs

Zřetězí seznamy vyvolání pole delegátů.

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 (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

Parametry

delegates
Delegate[]

Pole delegátů ke kombinování

Návraty

Nový delegát se seznamem vyvolání, který zřetězí seznamy vyvolání delegátů v poli delegates. Vrátí null pokud je nulldelegates , pokud delegates obsahuje nula prvků, nebo pokud je každá položka v delegatesnull.

Atributy

Výjimky

Ne všechny položky, které nejsou null v delegates jsou instance stejného typu delegáta.

Poznámky

Pokud pole delegates obsahuje položky, které jsou null, budou tyto položky ignorovány.

Seznam vyvolání může obsahovat duplicitní položky; to znamená položky, které odkazují na stejnou metodu na stejném objektu.

Poznámka

Obecné delegáty, které jsou kompatibilní s přiřazením kvůli rozptylu, nemusí být nutně kombinovány. Aby bylo možné kombinovat, musí se typy přesně shodovat. Předpokládejme například, že třída s názvem Derived je odvozena z třídy s názvem Base. Delegát typu Action<Base> (Action(Of Base) v jazyce Visual Basic) lze přiřadit proměnné typu Action<Derived>, jak je vysvětleno v Kovariance a Kontravariance, ale tyto dva delegáty nelze kombinovat, protože typy přesně neodpovídají.

Combine je užitečné pro vytváření obslužných rutin událostí, které při každém výskytu události volají více metod.

Viz také

Platí pro

Combine(ReadOnlySpan<Delegate>)

Zřetězí seznamy vyvolání rozsahu delegátů.

public:
 static Delegate ^ Combine(ReadOnlySpan<Delegate ^> delegates);
public static Delegate? Combine (scoped ReadOnlySpan<Delegate?> delegates);
static member Combine : ReadOnlySpan<Delegate> -> Delegate
Public Shared Function Combine (delegates As ReadOnlySpan(Of Delegate)) As Delegate

Parametry

delegates
ReadOnlySpan<Delegate>

Rozsah delegátů, kteří se mají kombinovat.

Návraty

Nový delegát se seznamem vyvolání, který zřetězí seznamy vyvolání delegátů v delegates rozsahu. Vrátí null pokud je nulldelegates , pokud delegates obsahuje nula prvků, nebo pokud je každá položka v delegatesnull.

Platí pro

Combine(Delegate, Delegate)

Zdroj:
Delegate.cs
Zdroj:
Delegate.cs
Zdroj:
Delegate.cs

Zřetězí seznamy vyvolání dvou delegátů.

public:
 static Delegate ^ Combine(Delegate ^ a, Delegate ^ b);
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

Parametry

a
Delegate

Delegát, jehož seznam vyvolání je první.

b
Delegate

Delegát, jehož seznam vyvolání je poslední.

Návraty

Nový delegát se seznamem vyvolání, který zřetězí seznamy vyvolání a a b v daném pořadí. Vrátí a pokud je bnull, vrátí b pokud a je odkaz null, a vrátí nulový odkaz, pokud a i b jsou odkazy null.

Výjimky

a i b nejsou nulla a a b nejsou instance stejného typu delegáta.

Poznámky

Seznam vyvolání může obsahovat duplicitní položky; to znamená položky, které odkazují na stejnou metodu na stejném objektu.

Poznámka

Obecné delegáty, které jsou kompatibilní s přiřazením kvůli rozptylu, nemusí být nutně kombinovány. Aby bylo možné kombinovat, musí se typy přesně shodovat. Předpokládejme například, že třída s názvem Derived je odvozena z třídy s názvem Base. Delegát typu Action<Base> (Action(Of Base) v jazyce Visual Basic) lze přiřadit proměnné typu Action<Derived>, jak je vysvětleno v Kovariance a Kontravariance, ale tyto dva delegáty nelze kombinovat, protože typy přesně neodpovídají.

Combine je užitečné pro vytváření obslužných rutin událostí, které při každém výskytu události volají více metod.

Viz také

Platí pro