通过


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

创建一个指定类型的委托,该委托表示在指定类实例上调用的指定实例方法,该委托具有指定的区分大小写,以及无法绑定的指定行为。

public:
 static Delegate ^ CreateDelegate(Type ^ type, System::Object ^ target, System::String ^ method, bool ignoreCase, bool throwOnBindFailure);
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("The target method might be removed")]
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);
public static Delegate? CreateDelegate(Type type, object target, string method, bool ignoreCase, bool throwOnBindFailure);
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("The target method might be removed")>]
static member CreateDelegate : Type * obj * string * bool * bool -> Delegate
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

如果 无法绑定,则为 ;否则为 >。

返回

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

属性

例外

typenull

-或-

targetnull

-或-

methodnull

type 不继承 MulticastDelegate

-或-

type不是 .RuntimeType

-或-

method 不是实例方法。

-或-

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

Invoke找不到方法type

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

注解

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

另请参阅

适用于

CreateDelegate(Type, Type, String, Boolean)

Source:
Delegate.cs
Source:
Delegate.cs
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);
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("The target method might be removed")]
public static Delegate CreateDelegate(Type type, Type target, string method, bool ignoreCase);
static member CreateDelegate : Type * Type * string * bool -> Delegate
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("The target method might be removed")>]
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

Type表示实现method的类。

method
String

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

ignoreCase
Boolean

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

返回

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

属性

例外

typenull

-或-

targetnull

-或-

methodnull

type 不继承 MulticastDelegate

-或-

type不是 .RuntimeType

-或-

target不是 .RuntimeType

-或-

target 是一种打开的泛型类型。 也就是说,其 ContainsGenericParameters 属性为 true.

-或-

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

-或-

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

Invoke找不到方法type

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

注解

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

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

另请参阅

适用于

CreateDelegate(Type, Object, String, Boolean)

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

创建指定类型的委托,该委托表示在具有指定大小写的指定类实例上调用的指定实例方法。

public:
 static Delegate ^ CreateDelegate(Type ^ type, System::Object ^ target, System::String ^ method, bool ignoreCase);
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("The target method might be removed")]
public static Delegate CreateDelegate(Type type, object target, string method, bool ignoreCase);
public static Delegate CreateDelegate(Type type, object target, string method, bool ignoreCase);
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("The target method might be removed")>]
static member CreateDelegate : Type * obj * string * bool -> Delegate
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

type 不继承 MulticastDelegate

-或-

type不是 .RuntimeType

-或-

method 不是实例方法。

-或-

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

Invoke找不到方法type

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

注解

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

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

另请参阅

适用于

CreateDelegate(Type, Object, MethodInfo, Boolean)

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

如果 无法绑定,则为 ;否则为 >。

返回

表示指定静态或实例方法的指定类型的委托,或者 null 如果 throwOnBindFailurefalse 且委托不能绑定到 method

例外

typenull

-或-

methodnull

type 不继承 MulticastDelegate

-或-

type不是 .RuntimeType

-或-

method 不能绑定,并且 throwOnBindFailuretrue

-或-

method不是 .RuntimeMethodInfo

Invoke找不到方法type

调用方没有访问 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
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);
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("The target method might be removed")]
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
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("The target method might be removed")>]
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

Type表示实现method的类。

method
String

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

ignoreCase
Boolean

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

throwOnBindFailure
Boolean

如果 无法绑定,则为 ;否则为 >。

返回

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

属性

例外

typenull

-或-

targetnull

-或-

methodnull

type 不继承 MulticastDelegate

-或-

type不是 .RuntimeType

-或-

target不是 .RuntimeType

-或-

target 是一种打开的泛型类型。 也就是说,其 ContainsGenericParameters 属性为 true.

-或-

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

-或-

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

Invoke找不到方法type

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

注解

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

另请参阅

适用于

CreateDelegate(Type, MethodInfo, Boolean)

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

如果 无法绑定,则为 ;否则为 >。

返回

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

例外

typenull

-或-

methodnull

type 不继承 MulticastDelegate

-或-

type不是 .RuntimeType

-或-

method 不能绑定,并且 throwOnBindFailuretrue

-或-

method不是 .RuntimeMethodInfo

Invoke找不到方法type

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

注解

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

注意

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

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

另请参阅

适用于

CreateDelegate(Type, Object, String)

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

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

public:
 static Delegate ^ CreateDelegate(Type ^ type, System::Object ^ target, System::String ^ method);
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("The target method might be removed")]
public static Delegate CreateDelegate(Type type, object target, string method);
public static Delegate CreateDelegate(Type type, object target, string method);
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("The target method might be removed")>]
static member CreateDelegate : Type * obj * string -> Delegate
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

type 不继承 MulticastDelegate

-或-

type不是 .RuntimeType

-或-

method 不是实例方法。

-或-

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

Invoke找不到方法type

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

注解

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

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

另请参阅

适用于

CreateDelegate(Type, Object, MethodInfo)

Source:
Delegate.cs
Source:
Delegate.cs
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 视为 staticShared in Visual Basic)。

method
MethodInfo

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

返回

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

例外

typenull

-或-

methodnull

type 不继承 MulticastDelegate

-或-

type不是 .RuntimeType

-或-

method 无法绑定。

-或-

method不是 .RuntimeMethodInfo

Invoke找不到方法type

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

注解

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

注意

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

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

另请参阅

适用于

CreateDelegate(Type, MethodInfo)

Source:
Delegate.cs
Source:
Delegate.cs
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描述委托要表示的静态或实例方法。

返回

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

例外

typenull

-或-

methodnull

type 不继承 MulticastDelegate

-或-

type不是 .RuntimeType

-或-

method 无法绑定。

-或-

method不是 .RuntimeMethodInfo

Invoke找不到方法type

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

注解

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

注意

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

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

另请参阅

适用于

CreateDelegate(Type, Type, String)

Source:
Delegate.cs
Source:
Delegate.cs
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);
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("The target method might be removed")]
public static Delegate CreateDelegate(Type type, Type target, string method);
static member CreateDelegate : Type * Type * string -> Delegate
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("The target method might be removed")>]
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

Type表示实现method的类。

method
String

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

返回

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

属性

例外

typenull

-或-

targetnull

-或-

methodnull

type 不继承 MulticastDelegate

-或-

type不是 .RuntimeType

-或-

target不是 .RuntimeType

-或-

target 是一种打开的泛型类型。 也就是说,其 ContainsGenericParameters 属性为 true.

-或-

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

Invoke找不到方法type

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

注解

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

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

另请参阅

适用于