Delegate.CreateDelegate メソッド

定義

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

オーバーロード

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

大文字と小文字の区別方法およびバインドに失敗したときの動作を指定して、指定したクラス インスタンスに対して呼び出す指定した型のデリゲートを作成します。

CreateDelegate(Type, Type, String, Boolean)

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

CreateDelegate(Type, Object, String, Boolean)

大文字と小文字の区別方法を指定して、指定したクラス インスタンスに対して呼び出す指定した型のデリゲートを作成します。

CreateDelegate(Type, Object, MethodInfo, Boolean)

指定された静的メソッドまたはインスタンス メソッドを表す、指定した型のデリゲートを、第 1 引数およびバインドに失敗したときの動作を指定して作成します。

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

大文字と小文字の区別方法およびバインドに失敗したときの動作を指定して、指定したクラスの指定した静的メソッドを表す、指定した型のデリゲートを作成します。

CreateDelegate(Type, MethodInfo, Boolean)

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

CreateDelegate(Type, Object, String)

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

CreateDelegate(Type, Object, MethodInfo)

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

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)呼び出すことtruethrowOnBindFailureと同じです。

こちらもご覧ください

適用対象

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)呼び出すことtruethrowOnBindFailureと同じです。

こちらもご覧ください

適用対象

CreateDelegate(Type, Object, MethodInfo, Boolean)

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

指定された静的メソッドまたはインスタンス メソッドを表す、指定した型のデリゲートを、第 1 引数およびバインドに失敗したときの動作を指定して作成します。

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

デリゲートが表すメソッドの第 1 引数である 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)と同じで、 に と truethrowOnBindFailurefalseignoreCase指定します。

こちらもご覧ください

適用対象

CreateDelegate(Type, Object, MethodInfo)

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

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

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 (Visual Basic の場合は Shared) として扱う場合は null

method
MethodInfo

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

戻り値

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

例外

typenull です。

または

methodnullです。

typeMulticastDelegate を継承しません。

- または -

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

- または -

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

- または -

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

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

method へのアクセスに必要なアクセス許可が呼び出し元にありません。

注釈

このメソッド オーバーロードの呼び出しは、 メソッド のオーバーロードをCreateDelegate(Type, Object, MethodInfo, Boolean)呼び出し、 にをthrowOnBindFailure指定することとtrue同じです。 これら 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 メソッド) ではありません。

- または -

見つからないなどの原因により、method をバインドできません。また、throwOnBindFailuretrue です。

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

method へのアクセスに必要なアクセス許可が呼び出し元にありません。

注釈

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

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

こちらもご覧ください

適用対象