Delegate.Combine 方法

定义

连接指定多播(可组合)委托的调用列表。

重载

Combine(Delegate[])

连接委托数组的调用列表。

Combine(ReadOnlySpan<Delegate>)

连接委托范围的调用列表。

Combine(Delegate, Delegate)

连接两个委托的调用列表。

Combine(Delegate[])

Source:
Delegate.cs
Source:
Delegate.cs
Source:
Delegate.cs

连接委托数组的调用列表。

C#
public static Delegate Combine(params Delegate[] delegates);
C#
public static Delegate? Combine(params Delegate?[]? delegates);
C#
public static Delegate Combine(Delegate[] delegates);
C#
[System.Runtime.InteropServices.ComVisible(true)]
public static Delegate Combine(params Delegate[] delegates);

参数

delegates
Delegate[]

要组合的委托数组。

返回

一个新委托,其中包含一个调用列表,该列表连接 delegates 数组中委托的调用列表。 如果 nulldelegates,则返回 null;如果 delegates 包含零个元素,或者 delegates 中的每个条目 null

属性

例外

并不是 delegates 中的所有非 null 条目都是同一委托类型的实例。

注解

如果 delegates 数组包含 null的条目,则忽略这些条目。

调用列表可以包含重复的条目;也就是说,引用同一对象上相同方法的条目。

备注

由于方差而与分配兼容的泛型委托不一定是可组合的。 若要组合,类型必须完全匹配。 例如,假设名为 Derived 的类派生自名为 Base的类。 协变和逆变中所述,可以将类型 Action<Base>(visual Basic 中的Action(Of Base))的委托分配给类型 Action<Derived>变量,但无法组合这两个委托,因为类型不匹配。

Combine 可用于创建每次发生事件时调用多个方法的事件处理程序。

另请参阅

适用于

.NET 10 和其他版本
产品 版本
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

Combine(ReadOnlySpan<Delegate>)

连接委托范围的调用列表。

C#
public static Delegate? Combine(scoped ReadOnlySpan<Delegate?> delegates);

参数

delegates
ReadOnlySpan<Delegate>

要组合的委托范围。

返回

一个新委托,其中包含一个调用列表,该列表连接 delegates 范围中委托的调用列表。 如果 nulldelegates,则返回 null;如果 delegates 包含零个元素,或者 delegates 中的每个条目 null

适用于

.NET 10 和 .NET 9
产品 版本
.NET 9, 10

Combine(Delegate, Delegate)

Source:
Delegate.cs
Source:
Delegate.cs
Source:
Delegate.cs

连接两个委托的调用列表。

C#
public static Delegate Combine(Delegate a, Delegate b);
C#
public static Delegate? Combine(Delegate? a, Delegate? b);

参数

a
Delegate

调用列表排在第一位的委托。

b
Delegate

调用列表最后一次的委托。

返回

一个新委托,其中包含一个调用列表,该列表连接 ab 的调用列表。 如果 bnull,则返回 a;如果 a 为 null 引用,则返回 b;如果 ab 均为 null 引用,则返回 null 引用。

例外

ab 都不 nullab 不是同一委托类型的实例。

注解

调用列表可以包含重复的条目;也就是说,引用同一对象上相同方法的条目。

备注

由于方差而与分配兼容的泛型委托不一定是可组合的。 若要组合,类型必须完全匹配。 例如,假设名为 Derived 的类派生自名为 Base的类。 协变和逆变中所述,可以将类型 Action<Base>(visual Basic 中的Action(Of Base))的委托分配给类型 Action<Derived>变量,但无法组合这两个委托,因为类型不匹配。

Combine 可用于创建每次发生事件时调用多个方法的事件处理程序。

另请参阅

适用于

.NET 10 和其他版本
产品 版本
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0