Udostępnij za pośrednictwem


Delegate.Combine Metoda

Definicja

Łączy listy wywołań określonych delegatów multiemisji (połączonych).

Przeciążenia

Combine(Delegate[])

Łączy listy wywołań tablicy delegatów.

Combine(ReadOnlySpan<Delegate>)

Łączy listy wywołań zakresu delegatów.

Combine(Delegate, Delegate)

Łączy listy wywołań dwóch delegatów.

Combine(Delegate[])

Źródło:
Delegate.cs
Źródło:
Delegate.cs
Źródło:
Delegate.cs

Łączy listy wywołań tablicy delegatów.

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[]

Tablica delegatów do połączenia.

Zwraca

Nowy pełnomocnik z listą wywołań, która łączy listy wywołań delegatów w tablicy delegates. Zwraca null, jeśli delegates jest null, jeśli delegates zawiera zero elementów lub jeśli każdy wpis w delegates jest null.

Atrybuty

Wyjątki

Nie wszystkie wpisy inne niż null w delegates są wystąpieniami tego samego typu delegata.

Uwagi

Jeśli tablica delegates zawiera wpisy, które są null, te wpisy są ignorowane.

Lista wywołań może zawierać zduplikowane wpisy; oznacza to, że wpisy odwołujące się do tej samej metody w tym samym obiekcie.

Nuta

Delegaty ogólne, które są zgodne z przypisaniem ze względu na wariancję, nie muszą być połączone. Aby można je było połączyć, typy muszą być dokładnie zgodne. Załóżmy na przykład, że klasa o nazwie Derived pochodzi z klasy o nazwie Base. Delegat typu Action<Base> (Action(Of Base) w Visual Basic) można przypisać do zmiennej typu Action<Derived>, jak wyjaśniono w Kowariancja i Kontrawariancja, ale nie można połączyć dwóch delegatów, ponieważ typy nie są dokładnie zgodne.

Combine jest przydatna do tworzenia procedur obsługi zdarzeń, które za każdym razem, gdy wystąpi zdarzenie.

Zobacz też

Dotyczy

Combine(ReadOnlySpan<Delegate>)

Łączy listy wywołań zakresu delegatów.

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>

Zakres delegatów do połączenia.

Zwraca

Nowy delegat z listą wywołań, która łączy listy wywołań delegatów w delegates span. Zwraca null, jeśli delegates jest null, jeśli delegates zawiera zero elementów lub jeśli każdy wpis w delegates jest null.

Dotyczy

Combine(Delegate, Delegate)

Źródło:
Delegate.cs
Źródło:
Delegate.cs
Źródło:
Delegate.cs

Łączy listy wywołań dwóch delegatów.

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

Delegat, którego lista wywołań jest pierwsza.

b
Delegate

Delegat, którego lista wywołań jest ostatnia.

Zwraca

Nowy delegat z listą wywołań, która łączy listy wywołań a i b w tej kolejności. Zwraca a, jeśli b jest null, zwraca b, jeśli a jest odwołaniem o wartości null, i zwraca odwołanie o wartości null, jeśli a i b są odwołaniami o wartości null.

Wyjątki

Zarówno a, jak i b nie są null, a a i b nie są wystąpieniami tego samego typu delegata.

Uwagi

Lista wywołań może zawierać zduplikowane wpisy; oznacza to, że wpisy odwołujące się do tej samej metody w tym samym obiekcie.

Nuta

Delegaty ogólne, które są zgodne z przypisaniem ze względu na wariancję, nie muszą być połączone. Aby można je było połączyć, typy muszą być dokładnie zgodne. Załóżmy na przykład, że klasa o nazwie Derived pochodzi z klasy o nazwie Base. Delegat typu Action<Base> (Action(Of Base) w Visual Basic) można przypisać do zmiennej typu Action<Derived>, jak wyjaśniono w Kowariancja i Kontrawariancja, ale nie można połączyć dwóch delegatów, ponieważ typy nie są dokładnie zgodne.

Combine jest przydatna do tworzenia procedur obsługi zdarzeń, które za każdym razem, gdy wystąpi zdarzenie.

Zobacz też

Dotyczy