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
.
- Атрибуты
Исключения
Не все ненулевые записи в 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 (ReadOnlySpan<Delegate?> delegates);
static member Combine : ReadOnlySpan<Delegate> -> Delegate
Public Shared Function Combine (delegates As ReadOnlySpan(Of Delegate)) As Delegate
Параметры
- delegates
- ReadOnlySpan<Delegate>
Возвращаемое значение
Применяется к
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 полезен для создания обработчиков событий, которые вызывают несколько методов при каждом возникновении события.
См. также раздел
Применяется к
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по