Delegate.Combine Метод

Определение

Сцепляет списки вызовов заданных групповых (комбинируемых) делегатов.

Перегрузки

Combine(Delegate[])

Сцепляет списки вызовов массива делегатов.

Combine(Delegate, Delegate)

Сцепляет списки вызовов двух делегатов.

Combine(Delegate[])

Исходный код:
Delegate.cs
Исходный код:
Delegate.cs
Исходный код:
Delegate.cs

Сцепляет списки вызовов массива делегатов.

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

Параметры

delegates
Delegate[]

Массив объединяемых делегатов.

Возвращаемое значение

Новый делегат со списком вызова, представляющим собой сцепление списков вызова делегатов в массиве delegates. Возвращает null, если delegates имеет значение null, если delegates содержит ноль элементов либо если каждая запись в delegates имеет значение null.

Атрибуты

Исключения

Не все ненулевые записи в delegates являются экземплярами одного и того же типа делегата.

Комментарии

delegates Если массив содержит записи, которые являются null, эти записи игнорируются.

Список вызовов может содержать повторяющиеся записи; то есть записи, ссылающиеся на один и тот же метод в том же объекте.

Примечание

Универсальные делегаты, совместимые с назначением из-за дисперсии, не обязательно могут объединяться. Чтобы быть комбинируемыми, типы должны точно соответствовать. Например, предположим, что класс с именем Derived является производным от класса с именем Base. Делегат типа Action<Base> (Action(Of Base) в Visual Basic) можно присвоить переменной типа Action<Derived>, как описано в разделе Ковариация и Контрвариантность, но эти два делегата не могут быть объединены, так как типы не соответствуют точно.

Combine полезен для создания обработчиков событий, которые вызывают несколько методов при каждом возникновении события.

См. также раздел

Применяется к

Combine(Delegate, Delegate)

Исходный код:
Delegate.cs
Исходный код:
Delegate.cs
Исходный код:
Delegate.cs

Сцепляет списки вызовов двух делегатов.

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

Параметры

a
Delegate

Делегат, список вызова которого передан первым.

b
Delegate

Делегат, список вызова которого передан последним.

Возвращаемое значение

Новый делегат со списком вызова, представляющим собой сцепление списков вызова, заданных в параметрах a и b в указанном порядке. Возвращает a, если b имеет значение null; возвращает b, если a является пустой ссылкой; возвращает пустую ссылку, если a и b являются пустыми ссылками.

Исключения

a и b не имеют значение null, а a и b не являются экземплярами одного и того же типа делегата.

Комментарии

Список вызовов может содержать повторяющиеся записи; то есть записи, ссылающиеся на один и тот же метод в том же объекте.

Примечание

Универсальные делегаты, совместимые с назначением из-за дисперсии, не обязательно могут объединяться. Чтобы быть комбинируемыми, типы должны точно соответствовать. Например, предположим, что класс с именем Derived является производным от класса с именем Base. Делегат типа Action<Base> (Action(Of Base) в Visual Basic) можно присвоить переменной типа Action<Derived>, как описано в разделе Ковариация и Контрвариантность, но эти два делегата не могут быть объединены, так как типы не соответствуют точно.

Combine полезен для создания обработчиков событий, которые вызывают несколько методов при каждом возникновении события.

См. также раздел

Применяется к