Delegate.Combine Метод

Определение

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

Перегрузки

Имя Описание
Combine(Delegate[])

Объединяет списки вызовов массива делегатов.

Combine(ReadOnlySpan<Delegate>)

Объединяет списки вызовов диапазона делегатов.

Combine(Delegate, Delegate)

Объединяет списки вызовов двух делегатов.

Combine(Delegate[])

Исходный код:
Delegate.cs
Исходный код:
Delegate.cs
Исходный код:
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.

Атрибуты

Исключения

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

Комментарии

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

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

Note

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

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

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

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

Combine(ReadOnlySpan<Delegate>)

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

Объединяет списки вызовов диапазона делегатов.

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

Параметры

delegates
ReadOnlySpan<Delegate>

Диапазон делегатов для объединения.

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

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

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

Combine(Delegate, Delegate)

Исходный код:
Delegate.cs
Исходный код:
Delegate.cs
Исходный код:
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 , bnull если b имеет значение aNULL, и возвращает пустую ссылку, если оба a и b являются пустыми ссылками.

Исключения

Оба a и b не являются и не nullab являются экземплярами одного и того же типа делегата.

Комментарии

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

Note

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

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

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

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