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)

Source:
Delegate.CoreCLR.cs
Source:
Delegate.CoreCLR.cs
Source:
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

返回

指定类型的委托,表示在指定类实例上调用的指定实例方法。

例外

type null

-或-

target null

-或-

method null

type 不继承 MulticastDelegate

-或-

type 不是 RuntimeType。 请参阅反射中的 运行时类型。

-或-

method 不是实例方法。

-或-

无法绑定 method,例如找不到它,并且 throwOnBindFailuretrue

找不到 typeInvoke 方法。

调用方没有访问 method所需的权限。

注解

此方法仅为实例方法创建委托。 实例方法是与类实例关联的方法;静态方法是与类本身关联的方法。

另请参阅

适用于

CreateDelegate(Type, Type, String, Boolean)

Source:
Delegate.cs
Source:
Delegate.cs
Source:
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

一个布尔值,指示在比较方法名称时是否忽略大小写。

返回

表示指定类的指定静态方法的委托。

例外

type null

-或-

target null

-或-

method null

type 不继承 MulticastDelegate

-或-

type 不是 RuntimeType。 请参阅反射中的 运行时类型。

-或-

target 不是 RuntimeType

-或-

target 是一种开放的泛型类型。 也就是说,它的 ContainsGenericParameters 属性 true

-或-

method 不是 static 方法(Visual Basic 中的Shared 方法)。

-或-

无法绑定 method,例如,无法找到它。

找不到 typeInvoke 方法。

调用方没有访问 method所需的权限。

注解

此方法仅为静态方法创建委托。 实例方法是与类实例关联的方法;静态方法是与类本身关联的方法。

此方法重载等效于调用 CreateDelegate(Type, Type, String, Boolean, Boolean) 方法重载,为 throwOnBindFailure指定 true

另请参阅

适用于

CreateDelegate(Type, Object, String, Boolean)

Source:
Delegate.cs
Source:
Delegate.cs
Source:
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

一个布尔值,指示在比较方法名称时是否忽略大小写。

返回

指定类型的委托,表示在指定类实例上调用的指定实例方法。

例外

type null

-或-

target null

-或-

method null

type 不继承 MulticastDelegate

-或-

type 不是 RuntimeType。 请参阅反射中的 运行时类型。

-或-

method 不是实例方法。

-或-

无法绑定 method,例如,无法找到它。

找不到 typeInvoke 方法。

调用方没有访问 method所需的权限。

注解

此方法仅为实例方法创建委托。 实例方法是与类实例关联的方法;静态方法是与类本身关联的方法。

此方法重载等效于调用 CreateDelegate(Type, Object, String, Boolean, Boolean) 方法重载,为 throwOnBindFailure指定 true

另请参阅

适用于

CreateDelegate(Type, Object, MethodInfo, Boolean)

Source:
Delegate.CoreCLR.cs
Source:
Delegate.CoreCLR.cs
Source:
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

例外

type null

-或-

method null

type 不继承 MulticastDelegate

-或-

type 不是 RuntimeType。 请参阅反射中的 运行时类型。

-或-

无法绑定 methodthrowOnBindFailuretrue

-或-

method 不是 RuntimeMethodInfo。 请参阅反射中的 运行时类型。

找不到 typeInvoke 方法。

调用方没有访问 method所需的权限。

注解

此方法重载和始终在绑定失败时引发的 CreateDelegate(Type, Object, MethodInfo) 方法重载提供了创建委托的最灵活方法。 可以使用它们为静态方法或实例方法创建委托,以及不带第一个参数。

注意

如果未提供第一个参数,请使用 CreateDelegate(Type, MethodInfo, Boolean) 方法重载来提高性能。

有关详细信息和示例,请参阅 System.Delegate.CreateDelegate的补充 API 备注。

另请参阅

适用于

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

Source:
Delegate.CoreCLR.cs
Source:
Delegate.CoreCLR.cs
Source:
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

返回

表示指定类的指定静态方法的委托。

例外

type null

-或-

target null

-或-

method null

type 不继承 MulticastDelegate

-或-

type 不是 RuntimeType。 请参阅反射中的 运行时类型。

-或-

target 不是 RuntimeType

-或-

target 是一种开放的泛型类型。 也就是说,它的 ContainsGenericParameters 属性 true

-或-

method 不是 static 方法(Visual Basic 中的Shared 方法)。

-或-

无法绑定 method,例如找不到它,并且 throwOnBindFailuretrue

找不到 typeInvoke 方法。

调用方没有访问 method所需的权限。

注解

此方法仅为静态方法创建委托。 实例方法是与类实例关联的方法;静态方法是与类本身关联的方法。

另请参阅

适用于

CreateDelegate(Type, MethodInfo, Boolean)

Source:
Delegate.CoreCLR.cs
Source:
Delegate.CoreCLR.cs
Source:
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

返回

表示指定静态方法的指定类型的委托。

例外

type null

-或-

method null

type 不继承 MulticastDelegate

-或-

type 不是 RuntimeType。 请参阅反射中的 运行时类型。

-或-

无法绑定 methodthrowOnBindFailuretrue

-或-

method 不是 RuntimeMethodInfo。 请参阅反射中的 运行时类型。

找不到 typeInvoke 方法。

调用方没有访问 method所需的权限。

注解

此方法重载可以创建打开的静态方法委托和打开的实例方法委托 ,即公开实例方法隐藏的第一个参数的委托。 有关详细说明,请参阅更常规 CreateDelegate(Type, Object, MethodInfo, Boolean) 方法重载,以便为实例或静态方法创建打开或关闭的委托的所有组合。

注意

当委托未在其第一个参数上关闭时,应使用此方法重载,因为在这种情况下,此方法重载的速度会稍快一些。

有关示例,请参阅 System.Delegate.CreateDelegate的补充 API 备注。

另请参阅

适用于

CreateDelegate(Type, Object, String)

Source:
Delegate.cs
Source:
Delegate.cs
Source:
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

委托要表示的实例方法的名称。

返回

指定类型的委托,表示在指定类实例上调用的指定实例方法。

例外

type null

-或-

target null

-或-

method null

type 不继承 MulticastDelegate

-或-

type 不是 RuntimeType。 请参阅反射中的 运行时类型。

-或-

method 不是实例方法。

-或-

无法绑定 method,例如,无法找到它。

找不到 typeInvoke 方法。

调用方没有访问 method所需的权限。

注解

此方法仅为实例方法创建委托。 实例方法是与类实例关联的方法;静态方法是与类本身关联的方法。

此方法重载等效于调用 CreateDelegate(Type, Object, String, Boolean, Boolean) 方法重载,为 ignoreCase 指定 false,并为 throwOnBindFailure指定 true

另请参阅

适用于

CreateDelegate(Type, Object, MethodInfo)

Source:
Delegate.cs
Source:
Delegate.cs
Source:
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

委托绑定到的对象,或 nullmethod 视为 static(在 Visual Basic 中Shared)。

method
MethodInfo

描述委托要表示的静态或实例方法的 MethodInfo

返回

表示指定静态或实例方法的指定类型的委托。

例外

type null

-或-

method null

type 不继承 MulticastDelegate

-或-

type 不是 RuntimeType。 请参阅反射中的 运行时类型。

-或-

无法绑定 method

-或-

method 不是 RuntimeMethodInfo。 请参阅反射中的 运行时类型。

找不到 typeInvoke 方法。

调用方没有访问 method所需的权限。

注解

调用此方法重载等效于调用 CreateDelegate(Type, Object, MethodInfo, Boolean) 方法重载并指定 throwOnBindFailuretrue。 这两个重载提供了创建委托的最灵活方法。 可以使用它们为静态方法或实例方法创建委托,还可以选择指定第一个参数。

注意

如果未提供第一个参数,请使用 CreateDelegate(Type, MethodInfo) 方法重载来提高性能。

有关此 API 的详细信息,请参阅 System.Delegate.CreateDelegate的补充 API 备注。

另请参阅

适用于

CreateDelegate(Type, MethodInfo)

Source:
Delegate.cs
Source:
Delegate.cs
Source:
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

返回

表示指定方法的指定类型的委托。

例外

type null

-或-

method null

type 不继承 MulticastDelegate

-或-

type 不是 RuntimeType。 请参阅反射中的 运行时类型。

-或-

无法绑定 method

-或-

method 不是 RuntimeMethodInfo。 请参阅反射中的 运行时类型。

找不到 typeInvoke 方法。

调用方没有访问 method所需的权限。

注解

此重载可以为静态方法和打开实例方法委托创建委托;也就是说,显式提供实例方法隐藏的第一个参数的委托。 有关详细说明,请参阅更常规的 CreateDelegate(Type, Object, MethodInfo) 方法重载,这样就可以为实例或静态方法创建打开或关闭的委托的所有组合,还可以选择指定第一个参数。

注意

当委托未在其第一个参数上关闭时,应使用此方法重载,因为在这种情况下,此方法重载的速度会稍快一些。

有关此 API 的详细信息,请参阅 System.Delegate.CreateDelegate的补充 API 备注。

另请参阅

适用于

CreateDelegate(Type, Type, String)

Source:
Delegate.cs
Source:
Delegate.cs
Source:
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

委托要表示的静态方法的名称。

返回

表示指定类的指定静态方法的委托。

例外

type null

-或-

target null

-或-

method null

type 不继承 MulticastDelegate

-或-

type 不是 RuntimeType。 请参阅反射中的 运行时类型。

-或-

target 不是 RuntimeType

-或-

target 是一种开放的泛型类型。 也就是说,它的 ContainsGenericParameters 属性 true

-或-

method 不是 static 方法(Visual Basic 中的Shared 方法)。

找不到 typeInvoke 方法。

调用方没有访问 method所需的权限。

注解

此方法仅为静态方法创建委托。 实例方法是与类实例关联的方法;静态方法是与类本身关联的方法。

此方法重载等效于调用 CreateDelegate(Type, Type, String, Boolean, Boolean) 方法重载,为 ignoreCase 指定 false,并为 throwOnBindFailure指定 true

另请参阅

适用于