英語で読む

次の方法で共有


Delegate.Combine メソッド

定義

指定されたマルチキャスト (結合可能) デリゲートの呼び出しリストを連結します。

オーバーロード

Combine(Delegate[])

デリゲートの配列の呼び出しリストを連結します。

Combine(ReadOnlySpan<Delegate>)

デリゲートのスパンの呼び出しリストを連結します。

Combine(Delegate, Delegate)

2 つのデリゲートの呼び出しリストを連結します。

Combine(Delegate[])

ソース:
Delegate.cs
ソース:
Delegate.cs
ソース:
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 配列内のデリゲートの呼び出しリストを連結する呼び出しリストを持つ新しいデリゲート。 delegatesnullの場合、delegates に 0 個の要素が含まれている場合、または delegates 内のすべてのエントリが nullされている場合は、null を返します。

属性

例外

delegates 内のすべての null 以外のエントリが同じデリゲート型のインスタンスであるわけではありません。

注釈

delegates 配列に nullエントリが含まれている場合、それらのエントリは無視されます。

呼び出しリストには重複するエントリを含めることができます。つまり、同じオブジェクトで同じメソッドを参照するエントリです。

注意

分散のために割り当て互換であるジェネリック デリゲートは、必ずしも組み合わせ可能ではありません。 組み合わせ可能にするには、型が正確に一致する必要があります。 たとえば、Derived という名前のクラスが、Baseという名前のクラスから派生しているとします。 共変性と反変性ので説明されているように、Action<Base> 型 (Visual Basic のAction(Of Base)) のデリゲートを Action<Derived>型の変数に割り当てることができますが、型が正確に一致しないため、2 つのデリゲートを結合することはできません。

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 スパン内のデリゲートの呼び出しリストを連結する呼び出しリストを持つ新しいデリゲート。 delegatesnullの場合、delegates に 0 個の要素が含まれている場合、または delegates 内のすべてのエントリが nullされている場合は、null を返します。

適用対象

.NET 10 および .NET 9
製品 バージョン
.NET 9, 10

Combine(Delegate, Delegate)

ソース:
Delegate.cs
ソース:
Delegate.cs
ソース:
Delegate.cs

2 つのデリゲートの呼び出しリストを連結します。

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 はどちらも nullされず、ab は同じデリゲート型のインスタンスではありません。

注釈

呼び出しリストには重複するエントリを含めることができます。つまり、同じオブジェクトで同じメソッドを参照するエントリです。

注意

分散のために割り当て互換であるジェネリック デリゲートは、必ずしも組み合わせ可能ではありません。 組み合わせ可能にするには、型が正確に一致する必要があります。 たとえば、Derived という名前のクラスが、Baseという名前のクラスから派生しているとします。 共変性と反変性ので説明されているように、Action<Base> 型 (Visual Basic のAction(Of Base)) のデリゲートを Action<Derived>型の変数に割り当てることができますが、型が正確に一致しないため、2 つのデリゲートを結合することはできません。

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