Delegate.Combine Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Объединяет списки вызовов указанных делегатов многоадресной рассылки (комбинируемые).
Перегрузки
Combine(Delegate[]) |
Объединяет списки вызовов массива делегатов. |
Combine(ReadOnlySpan<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
.
- Атрибуты
Исключения
Не все записи, отличные от NULL в delegates
, являются экземплярами одного типа делегата.
Комментарии
Если массив delegates
содержит записи, которые null
, эти записи игнорируются.
Список вызовов может содержать повторяющиеся записи; То есть записи, ссылающиеся на тот же метод в одном объекте.
Заметка
Универсальные делегаты, совместимые с назначением из-за дисперсии, не обязательно объединяются. Для объединения типы должны соответствовать точно. Например, предположим, что класс с именем Derived
является производным от класса с именем Base
. Делегат типа Action<Base>
(Action(Of Base)
в Visual Basic) можно назначить переменной типа Action<Derived>
, как описано в ковариации и контравариации, но два делегата не могут быть объединены, так как типы не соответствуют точно.
Combine полезно для создания обработчиков событий, которые вызывают несколько методов при каждом возникновении события.
См. также раздел
Применяется к
Combine(ReadOnlySpan<Delegate>)
Объединяет списки вызовов диапазона делегатов.
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
Объединяет списки вызовов двух делегатов.
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 полезно для создания обработчиков событий, которые вызывают несколько методов при каждом возникновении события.