Delegate.Combine Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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 null
delegates
, pokud delegates
obsahuje nula prvků, nebo pokud je každá položka v delegates
null
.
- 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 null
delegates
, pokud delegates
obsahuje nula prvků, nebo pokud je každá položka v delegates
null
.
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 b
null
, 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 null
a 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.