Delegate.CreateDelegate メソッド

定義

指定した型のデリゲートを作成します。

オーバーロード

CreateDelegate(Type, Object, String, Boolean, Boolean)

指定したクラス インスタンスで呼び出す、指定したインスタンス メソッドを表す、指定した型のデリゲートを作成します。バインドに失敗した場合は、指定した大文字と小文字の区別と指定した動作を使用します。

CreateDelegate(Type, Type, String, Boolean)

指定したクラスの指定した静的メソッドを表す、指定した型のデリゲートを、指定した大文字と小文字を区別して作成します。

CreateDelegate(Type, Object, String, Boolean)

指定したクラス インスタンスで呼び出す指定したインスタンス メソッドを表す、指定した型のデリゲートを、指定した大文字と小文字を区別して作成します。

CreateDelegate(Type, Object, MethodInfo, Boolean)

指定した静的メソッドまたはインスタンス メソッドを表す、指定した型のデリゲートを作成します。最初の引数を指定し、バインドに失敗した場合の動作を指定します。

CreateDelegate(Type, Type, String, Boolean, Boolean)

指定したクラスの指定した静的メソッドを表す、指定した型のデリゲートを作成します。バインドに失敗した場合は、指定した大文字と小文字の区別と指定した動作を使用します。

CreateDelegate(Type, MethodInfo, Boolean)

指定した静的メソッドを表す、指定した型のデリゲートを作成します。バインドに失敗した場合の動作を指定します。

CreateDelegate(Type, Object, String)

指定したクラス インスタンスで呼び出す指定したインスタンス メソッドを表す、指定した型のデリゲートを作成します。

CreateDelegate(Type, Object, MethodInfo)

指定した最初の引数を使用して、指定した静的メソッドまたはインスタンス メソッドを表す、指定した型のデリゲートを作成します。

CreateDelegate(Type, MethodInfo)

指定したメソッドを表す、指定した型のデリゲートを作成します。

CreateDelegate(Type, Type, String)

指定したクラスの指定した静的メソッドを表す、指定した型のデリゲートを作成します。

CreateDelegate(Type, Object, String, Boolean, Boolean)

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

指定したクラス インスタンスで呼び出す、指定したインスタンス メソッドを表す、指定した型のデリゲートを作成します。バインドに失敗した場合は、指定した大文字と小文字の区別と指定した動作を使用します。

public:
 static Delegate ^ CreateDelegate(Type ^ type, System::Object ^ target, System::String ^ method, bool ignoreCase, bool throwOnBindFailure);
public static Delegate? CreateDelegate (Type type, object target, string method, bool ignoreCase, bool throwOnBindFailure);
public static Delegate CreateDelegate (Type type, object target, string method, bool ignoreCase, bool throwOnBindFailure);
static member CreateDelegate : Type * obj * string * bool * bool -> Delegate
Public Shared Function CreateDelegate (type As Type, target As Object, method As String, ignoreCase As Boolean, throwOnBindFailure As Boolean) As Delegate

パラメーター

type
Type

作成するデリゲートの Type

target
Object

method が呼び出されるクラス インスタンス。

method
String

デリゲートが表すインスタンス メソッドの名前。

ignoreCase
Boolean

メソッドの名前を比較するときに大文字と小文字を無視するかどうかを示すブール値。

throwOnBindFailure
Boolean

method バインドできない場合に例外をスローする true。それ以外の場合は、falseします。

戻り値

指定したクラス インスタンスで呼び出す、指定したインスタンス メソッドを表す、指定した型のデリゲート。

例外

typenullです。

-又は-

targetnullです。

-又は-

methodnullです。

typeMulticastDelegateを継承しません。

-又は-

typeRuntimeTypeではありません。 リフレクションのランタイム型の を参照してください。

-又は-

method はインスタンス メソッドではありません。

-又は-

method が見つからない、throwOnBindFailuretrueなど、バインドできません。

typeInvoke メソッドが見つかりません。

呼び出し元には、methodにアクセスするために必要なアクセス許可がありません。

注釈

このメソッドは、インスタンス メソッドのデリゲートのみを作成します。 インスタンス メソッドは、クラスのインスタンスに関連付けられているメソッドです。静的メソッドは、クラス自体に関連付けられているメソッドです。

こちらもご覧ください

適用対象

CreateDelegate(Type, Type, String, Boolean)

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

指定したクラスの指定した静的メソッドを表す、指定した型のデリゲートを、指定した大文字と小文字を区別して作成します。

public:
 static Delegate ^ CreateDelegate(Type ^ type, Type ^ target, System::String ^ method, bool ignoreCase);
public static Delegate CreateDelegate (Type type, Type target, string method, bool ignoreCase);
static member CreateDelegate : Type * Type * string * bool -> Delegate
Public Shared Function CreateDelegate (type As Type, target As Type, method As String, ignoreCase As Boolean) As Delegate

パラメーター

type
Type

作成するデリゲートの Type

target
Type

methodを実装するクラスを表す Type

method
String

デリゲートが表す静的メソッドの名前。

ignoreCase
Boolean

メソッドの名前を比較するときに大文字と小文字を無視するかどうかを示すブール値。

戻り値

指定したクラスの指定した静的メソッドを表す、指定した型のデリゲート。

例外

typenullです。

-又は-

targetnullです。

-又は-

methodnullです。

typeMulticastDelegateを継承しません。

-又は-

typeRuntimeTypeではありません。 リフレクションのランタイム型の を参照してください。

-又は-

targetRuntimeTypeではありません。

-又は-

target はオープン ジェネリック型です。 つまり、その ContainsGenericParameters プロパティは trueです。

-又は-

methodstatic メソッドではありません (Visual Basic のShared メソッド)。

-又は-

method が見つからないなど、バインドできません。

typeInvoke メソッドが見つかりません。

呼び出し元には、methodにアクセスするために必要なアクセス許可がありません。

注釈

このメソッドは、静的メソッド専用のデリゲートを作成します。 インスタンス メソッドは、クラスのインスタンスに関連付けられているメソッドです。静的メソッドは、クラス自体に関連付けられているメソッドです。

このメソッド オーバーロードは、CreateDelegate(Type, Type, String, Boolean, Boolean) メソッドオーバーロードを呼び出し、throwOnBindFailuretrue を指定することと同じです。

こちらもご覧ください

適用対象

CreateDelegate(Type, Object, String, Boolean)

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

指定したクラス インスタンスで呼び出す指定したインスタンス メソッドを表す、指定した型のデリゲートを、指定した大文字と小文字を区別して作成します。

public:
 static Delegate ^ CreateDelegate(Type ^ type, System::Object ^ target, System::String ^ method, bool ignoreCase);
public static Delegate CreateDelegate (Type type, object target, string method, bool ignoreCase);
static member CreateDelegate : Type * obj * string * bool -> Delegate
Public Shared Function CreateDelegate (type As Type, target As Object, method As String, ignoreCase As Boolean) As Delegate

パラメーター

type
Type

作成するデリゲートの Type

target
Object

method が呼び出されるクラス インスタンス。

method
String

デリゲートが表すインスタンス メソッドの名前。

ignoreCase
Boolean

メソッドの名前を比較するときに大文字と小文字を無視するかどうかを示すブール値。

戻り値

指定したクラス インスタンスで呼び出す、指定したインスタンス メソッドを表す、指定した型のデリゲート。

例外

typenullです。

-又は-

targetnullです。

-又は-

methodnullです。

typeMulticastDelegateを継承しません。

-又は-

typeRuntimeTypeではありません。 リフレクションのランタイム型の を参照してください。

-又は-

method はインスタンス メソッドではありません。

-又は-

method が見つからないなど、バインドできません。

typeInvoke メソッドが見つかりません。

呼び出し元には、methodにアクセスするために必要なアクセス許可がありません。

注釈

このメソッドは、インスタンス メソッドのデリゲートのみを作成します。 インスタンス メソッドは、クラスのインスタンスに関連付けられているメソッドです。静的メソッドは、クラス自体に関連付けられているメソッドです。

このメソッド オーバーロードは、CreateDelegate(Type, Object, String, Boolean, Boolean) メソッドオーバーロードを呼び出し、throwOnBindFailuretrue を指定することと同じです。

こちらもご覧ください

適用対象

CreateDelegate(Type, Object, MethodInfo, Boolean)

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

指定した静的メソッドまたはインスタンス メソッドを表す、指定した型のデリゲートを作成します。最初の引数を指定し、バインドに失敗した場合の動作を指定します。

public:
 static Delegate ^ CreateDelegate(Type ^ type, System::Object ^ firstArgument, System::Reflection::MethodInfo ^ method, bool throwOnBindFailure);
public static Delegate? CreateDelegate (Type type, object? firstArgument, System.Reflection.MethodInfo method, bool throwOnBindFailure);
public static Delegate CreateDelegate (Type type, object firstArgument, System.Reflection.MethodInfo method, bool throwOnBindFailure);
static member CreateDelegate : Type * obj * System.Reflection.MethodInfo * bool -> Delegate
Public Shared Function CreateDelegate (type As Type, firstArgument As Object, method As MethodInfo, throwOnBindFailure As Boolean) As Delegate

パラメーター

type
Type

作成するデリゲートの種類を表す Type

firstArgument
Object

デリゲートが表すメソッドの最初の引数である Object。 インスタンス メソッドの場合、インスタンス型と互換性がある必要があります。

method
MethodInfo

デリゲートが表す静的メソッドまたはインスタンス メソッドを記述する MethodInfo

throwOnBindFailure
Boolean

method バインドできない場合に例外をスローする true。それ以外の場合は、falseします。

戻り値

指定した静的メソッドまたはインスタンス メソッドを表す、指定した型のデリゲート。throwOnBindFailurefalse され、デリゲートを methodにバインドできない場合は null

例外

typenullです。

-又は-

methodnullです。

typeMulticastDelegateを継承しません。

-又は-

typeRuntimeTypeではありません。 リフレクションのランタイム型の を参照してください。

-又は-

method バインドできず、throwOnBindFailuretrue

-又は-

methodRuntimeMethodInfoではありません。 リフレクションのランタイム型の を参照してください。

typeInvoke メソッドが見つかりません。

呼び出し元には、methodにアクセスするために必要なアクセス許可がありません。

注釈

このメソッドオーバーロードと CreateDelegate(Type, Object, MethodInfo) メソッドオーバーロードは、バインドに失敗すると常にスローされ、デリゲートを作成する最も柔軟な方法を提供します。 これらを使用して、最初の引数の有無にかかわらず、静的メソッドまたはインスタンス メソッドのデリゲートを作成できます。

手記

最初の引数を指定しない場合は、CreateDelegate(Type, MethodInfo, Boolean) メソッドのオーバーロードを使用してパフォーマンスを向上させます。

詳細と例については、「System.Delegate.CreateDelegateの補足 API 解説 参照してください。

こちらもご覧ください

適用対象

CreateDelegate(Type, Type, String, Boolean, Boolean)

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

指定したクラスの指定した静的メソッドを表す、指定した型のデリゲートを作成します。バインドに失敗した場合は、指定した大文字と小文字の区別と指定した動作を使用します。

public:
 static Delegate ^ CreateDelegate(Type ^ type, Type ^ target, System::String ^ method, bool ignoreCase, bool throwOnBindFailure);
public static Delegate? CreateDelegate (Type type, Type target, string method, bool ignoreCase, bool throwOnBindFailure);
public static Delegate CreateDelegate (Type type, Type target, string method, bool ignoreCase, bool throwOnBindFailure);
static member CreateDelegate : Type * Type * string * bool * bool -> Delegate
Public Shared Function CreateDelegate (type As Type, target As Type, method As String, ignoreCase As Boolean, throwOnBindFailure As Boolean) As Delegate

パラメーター

type
Type

作成するデリゲートの Type

target
Type

methodを実装するクラスを表す Type

method
String

デリゲートが表す静的メソッドの名前。

ignoreCase
Boolean

メソッドの名前を比較するときに大文字と小文字を無視するかどうかを示すブール値。

throwOnBindFailure
Boolean

method バインドできない場合に例外をスローする true。それ以外の場合は、falseします。

戻り値

指定したクラスの指定した静的メソッドを表す、指定した型のデリゲート。

例外

typenullです。

-又は-

targetnullです。

-又は-

methodnullです。

typeMulticastDelegateを継承しません。

-又は-

typeRuntimeTypeではありません。 リフレクションのランタイム型の を参照してください。

-又は-

targetRuntimeTypeではありません。

-又は-

target はオープン ジェネリック型です。 つまり、その ContainsGenericParameters プロパティは trueです。

-又は-

methodstatic メソッドではありません (Visual Basic のShared メソッド)。

-又は-

method が見つからない、throwOnBindFailuretrueなど、バインドできません。

typeInvoke メソッドが見つかりません。

呼び出し元には、methodにアクセスするために必要なアクセス許可がありません。

注釈

このメソッドは、静的メソッド専用のデリゲートを作成します。 インスタンス メソッドは、クラスのインスタンスに関連付けられているメソッドです。静的メソッドは、クラス自体に関連付けられているメソッドです。

こちらもご覧ください

適用対象

CreateDelegate(Type, MethodInfo, Boolean)

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

指定した静的メソッドを表す、指定した型のデリゲートを作成します。バインドに失敗した場合の動作を指定します。

public:
 static Delegate ^ CreateDelegate(Type ^ type, System::Reflection::MethodInfo ^ method, bool throwOnBindFailure);
public static Delegate? CreateDelegate (Type type, System.Reflection.MethodInfo method, bool throwOnBindFailure);
public static Delegate CreateDelegate (Type type, System.Reflection.MethodInfo method, bool throwOnBindFailure);
static member CreateDelegate : Type * System.Reflection.MethodInfo * bool -> Delegate
Public Shared Function CreateDelegate (type As Type, method As MethodInfo, throwOnBindFailure As Boolean) As Delegate

パラメーター

type
Type

作成するデリゲートの Type

method
MethodInfo

デリゲートが表す静的メソッドまたはインスタンス メソッドを記述する MethodInfo

throwOnBindFailure
Boolean

method バインドできない場合に例外をスローする true。それ以外の場合は、falseします。

戻り値

指定した静的メソッドを表す、指定した型のデリゲート。

例外

typenullです。

-又は-

methodnullです。

typeMulticastDelegateを継承しません。

-又は-

typeRuntimeTypeではありません。 リフレクションのランタイム型の を参照してください。

-又は-

method バインドできず、throwOnBindFailuretrue

-又は-

methodRuntimeMethodInfoではありません。 リフレクションのランタイム型の を参照してください。

typeInvoke メソッドが見つかりません。

呼び出し元には、methodにアクセスするために必要なアクセス許可がありません。

注釈

このメソッド オーバーロードでは、オープン静的メソッド デリゲートとオープン インスタンス メソッド デリゲート (つまり、インスタンス メソッドの非表示の最初の引数を公開するデリゲート) を作成できます。 詳細な説明については、より一般的な CreateDelegate(Type, Object, MethodInfo, Boolean) メソッドオーバーロードを参照してください。これにより、インスタンスまたは静的メソッドに対して、開いているデリゲートと閉じたデリゲートのすべての組み合わせを作成できます。

手記

このメソッドオーバーロードは、デリゲートが最初の引数で閉じられない場合に使用する必要があります。その場合はやや高速であるためです。

例については、「System.Delegate.CreateDelegateの補足 API 解説 参照してください。

こちらもご覧ください

適用対象

CreateDelegate(Type, Object, String)

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

指定したクラス インスタンスで呼び出す指定したインスタンス メソッドを表す、指定した型のデリゲートを作成します。

public:
 static Delegate ^ CreateDelegate(Type ^ type, System::Object ^ target, System::String ^ method);
public static Delegate CreateDelegate (Type type, object target, string method);
static member CreateDelegate : Type * obj * string -> Delegate
Public Shared Function CreateDelegate (type As Type, target As Object, method As String) As Delegate

パラメーター

type
Type

作成するデリゲートの Type

target
Object

method が呼び出されるクラス インスタンス。

method
String

デリゲートが表すインスタンス メソッドの名前。

戻り値

指定したクラス インスタンスで呼び出す、指定したインスタンス メソッドを表す、指定した型のデリゲート。

例外

typenullです。

-又は-

targetnullです。

-又は-

methodnullです。

typeMulticastDelegateを継承しません。

-又は-

typeRuntimeTypeではありません。 リフレクションのランタイム型の を参照してください。

-又は-

method はインスタンス メソッドではありません。

-又は-

method が見つからないなど、バインドできません。

typeInvoke メソッドが見つかりません。

呼び出し元には、methodにアクセスするために必要なアクセス許可がありません。

注釈

このメソッドは、インスタンス メソッドのデリゲートのみを作成します。 インスタンス メソッドは、クラスのインスタンスに関連付けられているメソッドです。静的メソッドは、クラス自体に関連付けられているメソッドです。

このメソッド オーバーロードは、CreateDelegate(Type, Object, String, Boolean, Boolean) メソッド のオーバーロードを呼び出し、throwOnBindFailureignoreCasetruefalse を指定することと同じです。

こちらもご覧ください

適用対象

CreateDelegate(Type, Object, MethodInfo)

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

指定した最初の引数を使用して、指定した静的メソッドまたはインスタンス メソッドを表す、指定した型のデリゲートを作成します。

public:
 static Delegate ^ CreateDelegate(Type ^ type, System::Object ^ firstArgument, System::Reflection::MethodInfo ^ method);
public static Delegate CreateDelegate (Type type, object? firstArgument, System.Reflection.MethodInfo method);
public static Delegate CreateDelegate (Type type, object firstArgument, System.Reflection.MethodInfo method);
static member CreateDelegate : Type * obj * System.Reflection.MethodInfo -> Delegate
Public Shared Function CreateDelegate (type As Type, firstArgument As Object, method As MethodInfo) As Delegate

パラメーター

type
Type

作成するデリゲートの Type

firstArgument
Object

デリゲートがバインドされているオブジェクト、または methodstatic として扱う null (Visual Basic のShared)。

method
MethodInfo

デリゲートが表す静的メソッドまたはインスタンス メソッドを記述する MethodInfo

戻り値

指定した静的メソッドまたはインスタンス メソッドを表す、指定した型のデリゲート。

例外

typenullです。

-又は-

methodnullです。

typeMulticastDelegateを継承しません。

-又は-

typeRuntimeTypeではありません。 リフレクションのランタイム型の を参照してください。

-又は-

method はバインドできません。

-又は-

methodRuntimeMethodInfoではありません。 リフレクションのランタイム型の を参照してください。

typeInvoke メソッドが見つかりません。

呼び出し元には、methodにアクセスするために必要なアクセス許可がありません。

注釈

このメソッド オーバーロードの呼び出しは、CreateDelegate(Type, Object, MethodInfo, Boolean) メソッドのオーバーロードを呼び出し、throwOnBindFailuretrue を指定することと同じです。 これら 2 つのオーバーロードは、デリゲートを作成する最も柔軟な方法を提供します。 これらを使用して、静的メソッドまたはインスタンス メソッドのデリゲートを作成し、必要に応じて最初の引数を指定できます。

手記

最初の引数を指定しない場合は、CreateDelegate(Type, MethodInfo) メソッドのオーバーロードを使用してパフォーマンスを向上させます。

この API の詳細については、「System.Delegate.CreateDelegateの補足 API 解説 参照してください。

こちらもご覧ください

適用対象

CreateDelegate(Type, MethodInfo)

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

指定したメソッドを表す、指定した型のデリゲートを作成します。

public:
 static Delegate ^ CreateDelegate(Type ^ type, System::Reflection::MethodInfo ^ method);
public static Delegate CreateDelegate (Type type, System.Reflection.MethodInfo method);
static member CreateDelegate : Type * System.Reflection.MethodInfo -> Delegate
Public Shared Function CreateDelegate (type As Type, method As MethodInfo) As Delegate

パラメーター

type
Type

作成するデリゲートの Type

method
MethodInfo

デリゲートが表す静的メソッドまたはインスタンス メソッドを記述する MethodInfo

戻り値

指定したメソッドを表す、指定した型のデリゲート。

例外

typenullです。

-又は-

methodnullです。

typeMulticastDelegateを継承しません。

-又は-

typeRuntimeTypeではありません。 リフレクションのランタイム型の を参照してください。

-又は-

method はバインドできません。

-又は-

methodRuntimeMethodInfoではありません。 リフレクションのランタイム型の を参照してください。

typeInvoke メソッドが見つかりません。

呼び出し元には、methodにアクセスするために必要なアクセス許可がありません。

注釈

このオーバーロードでは、静的メソッドおよびオープン インスタンス メソッド デリゲートのデリゲートを作成できます。つまり、インスタンス メソッドの非表示の最初の引数を明示的に指定するデリゲートです。 詳細な説明については、より一般的な CreateDelegate(Type, Object, MethodInfo) メソッドオーバーロードを参照してください。これにより、インスタンスまたは静的メソッドの開いているデリゲートまたは閉じたデリゲートのすべての組み合わせを作成でき、必要に応じて最初の引数を指定できます。

手記

このメソッドオーバーロードは、デリゲートが最初の引数で閉じられない場合に使用する必要があります。その場合はやや高速であるためです。

この API の詳細については、「System.Delegate.CreateDelegateの補足 API 解説 参照してください。

こちらもご覧ください

適用対象

CreateDelegate(Type, Type, String)

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

指定したクラスの指定した静的メソッドを表す、指定した型のデリゲートを作成します。

public:
 static Delegate ^ CreateDelegate(Type ^ type, Type ^ target, System::String ^ method);
public static Delegate CreateDelegate (Type type, Type target, string method);
static member CreateDelegate : Type * Type * string -> Delegate
Public Shared Function CreateDelegate (type As Type, target As Type, method As String) As Delegate

パラメーター

type
Type

作成するデリゲートの Type

target
Type

methodを実装するクラスを表す Type

method
String

デリゲートが表す静的メソッドの名前。

戻り値

指定したクラスの指定した静的メソッドを表す、指定した型のデリゲート。

例外

typenullです。

-又は-

targetnullです。

-又は-

methodnullです。

typeMulticastDelegateを継承しません。

-又は-

typeRuntimeTypeではありません。 リフレクションのランタイム型の を参照してください。

-又は-

targetRuntimeTypeではありません。

-又は-

target はオープン ジェネリック型です。 つまり、その ContainsGenericParameters プロパティは trueです。

-又は-

methodstatic メソッドではありません (Visual Basic のShared メソッド)。

typeInvoke メソッドが見つかりません。

呼び出し元には、methodにアクセスするために必要なアクセス許可がありません。

注釈

このメソッドは、静的メソッド専用のデリゲートを作成します。 インスタンス メソッドは、クラスのインスタンスに関連付けられているメソッドです。静的メソッドは、クラス自体に関連付けられているメソッドです。

このメソッド オーバーロードは、CreateDelegate(Type, Type, String, Boolean, Boolean) メソッド のオーバーロードを呼び出し、throwOnBindFailureignoreCasetruefalse を指定することと同じです。

こちらもご覧ください

適用対象