Delegate.Combine Метод

Определение

Сцепляет списки вызовов заданных групповых (комбинируемых) делегатов.Concatenates the invocation lists of the specified multicast (combinable) delegates.

Перегрузки

Combine(Delegate[])

Сцепляет списки вызовов массива делегатов.Concatenates the invocation lists of an array of delegates.

Combine(Delegate, Delegate)

Сцепляет списки вызовов двух делегатов.Concatenates the invocation lists of two delegates.

Combine(Delegate[])

Сцепляет списки вызовов массива делегатов.Concatenates the invocation lists of an array of delegates.

public:
 static Delegate ^ Combine(cli::array <Delegate ^> ^ delegates);
[System.Runtime.InteropServices.ComVisible(true)]
public static Delegate Combine (Delegate[] delegates);
static member Combine : Delegate[] -> Delegate
Public Shared Function Combine (delegates As Delegate()) As Delegate

Параметры

delegates
Delegate[]

Массив комбинируемых делегатов.The array of delegates to combine.

Возвраты

Новый делегат со списком вызовов, представляющим собой сцепление списков вызовов делегатов, заданных в массиве delegates.A new delegate with an invocation list that concatenates the invocation lists of the delegates in the delegates array. Возвращает null, если delegates имеет значение null, либо delegates содержит нуль элементов, либо каждый элемент в delegates имеет значение null.Returns null if delegates is null, if delegates contains zero elements, or if every entry in delegates is null.

Атрибуты

Исключения

Не все ненулевые элементы в delegates являются экземплярами одного типа делегата.Not all the non-null entries in delegates are instances of the same delegate type.

Комментарии

Если массив содержит записи null, то эти записи игнорируются. delegatesIf the delegates array contains entries that are null, those entries are ignored.

Список вызовов может содержать дублирующиеся записи. то есть записи, ссылающиеся на один и тот же метод для одного и того же объекта.The invocation list can contain duplicate entries; that is, entries that refer to the same method on the same object.

Примечание

Универсальные делегаты, совместимые с присваиванием, в связи с дисперсией не всегда являются комбинированными.Generic delegates that are assignment-compatible because of variance are not necessarily combinable. Чтобы обеспечить возможность комбинирования, типы должны точно совпадать.To be combinable, the types must match exactly. Например, предположим, что класс с именем Derived является производным от класса с Baseименем.For example, suppose that a class named Derived is derived from a class named Base. Делегат типа Action<Base> (Action(Of Base) в Visual Basic) может быть присвоен переменной типа Action<Derived>, как описано в ковариации и контрвариация, но два делегата не могут быть объединены, так как типы не совпадают в точности.A delegate of type Action<Base> (Action(Of Base) in Visual Basic) can be assigned to a variable of type Action<Derived>, as explained in Covariance and Contravariance, but the two delegates cannot be combined because the types do not match exactly.

Combineполезен для создания обработчиков событий, которые вызывают несколько методов при каждом возникновении события.Combine is useful for creating event handlers that call multiple methods each time an event occurs.

Безопасность

ReflectionPermission
При вызове поздней привязки с помощью таких механизмов InvokeMember(String, BindingFlags, Binder, Object, Object[], ParameterModifier[], CultureInfo, String[]), как.when invoked late-bound through mechanisms such as InvokeMember(String, BindingFlags, Binder, Object, Object[], ParameterModifier[], CultureInfo, String[]). Связанное перечисление:MemberAccessAssociated enumeration: MemberAccess

Дополнительно

Combine(Delegate, Delegate)

Сцепляет списки вызовов двух делегатов.Concatenates the invocation lists of two delegates.

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

Делегат, список вызовов которого передан первым.The delegate whose invocation list comes first.

b
Delegate

Делегат, список вызовов которого передан вторым.The delegate whose invocation list comes last.

Возвраты

Новый делегат со списком вызовов, представляющим собой сцепление списков вызовов, заданных в параметрах a и b в указанном порядке.A new delegate with an invocation list that concatenates the invocation lists of a and b in that order. Возвращает a, если b имеет значение null; возвращает b, если a является пустой ссылкой; возвращает пустую ссылку, если a и b являются пустыми ссылками.Returns a if b is null, returns b if a is a null reference, and returns a null reference if both a and b are null references.

Исключения

Значение обоих параметров, a и b, не равно null, и эти параметры a и b не являются экземплярами одного и того же типа делегата.Both a and b are not null, and a and b are not instances of the same delegate type.

Комментарии

Список вызовов может содержать дублирующиеся записи. то есть записи, ссылающиеся на один и тот же метод для одного и того же объекта.The invocation list can contain duplicate entries; that is, entries that refer to the same method on the same object.

Примечание

Универсальные делегаты, совместимые с присваиванием, в связи с дисперсией не всегда являются комбинированными.Generic delegates that are assignment-compatible because of variance are not necessarily combinable. Чтобы обеспечить возможность комбинирования, типы должны точно совпадать.To be combinable, the types must match exactly. Например, предположим, что класс с именем Derived является производным от класса с Baseименем.For example, suppose that a class named Derived is derived from a class named Base. Делегат типа Action<Base> (Action(Of Base) в Visual Basic) может быть присвоен переменной типа Action<Derived>, как описано в ковариации и контрвариация, но два делегата не могут быть объединены, так как типы не совпадают в точности.A delegate of type Action<Base> (Action(Of Base) in Visual Basic) can be assigned to a variable of type Action<Derived>, as explained in Covariance and Contravariance, but the two delegates cannot be combined because the types do not match exactly.

Combineполезен для создания обработчиков событий, которые вызывают несколько методов при каждом возникновении события.Combine is useful for creating event handlers that call multiple methods each time an event occurs.

Безопасность

ReflectionPermission
При вызове поздней привязки с помощью таких механизмов InvokeMember(String, BindingFlags, Binder, Object, Object[], ParameterModifier[], CultureInfo, String[]), как.when invoked late-bound through mechanisms such as InvokeMember(String, BindingFlags, Binder, Object, Object[], ParameterModifier[], CultureInfo, String[]). Связанное перечисление:MemberAccessAssociated enumeration: MemberAccess

Дополнительно

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