Delegate.CreateDelegate 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
创建指定类型的委托。
重载
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
参数
- target
- Object
类实例,对其调用 method
。
- method
- String
委托要表示的实例方法的名称。
- ignoreCase
- Boolean
一个布尔值,它指示在比较方法名称时是否忽略大小写。
- throwOnBindFailure
- Boolean
如果无法绑定 method
时引发异常,则为 true
;否则为 false
。
返回
指定的类型的委托,表示要对指定的类实例调用的指定的实例方法。
例外
type
不继承 MulticastDelegate。
- 或 -
type
不是 RuntimeType
。 请参阅反射中的运行时类型。
- 或 -
method
不是实例方法。
- 或 -
无法绑定 method
,例如因为找不到它,并且 throwOnBindFailure
为 true
。
找不到 type
的 Invoke
方法。
调用方没有访问 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
参数
- method
- String
委托要表示的静态方法的名称。
- ignoreCase
- Boolean
一个布尔值,它指示在比较方法名称时是否忽略大小写。
返回
指定类型的委托,该委托表示指定类的指定静态方法。
例外
type
不继承 MulticastDelegate。
- 或 -
type
不是 RuntimeType
。 请参阅反射中的运行时类型。
- 或 -
target
不是 RuntimeType
。
- 或 -
target
为开放式泛型类型。 也就是说,其 ContainsGenericParameters 属性为 true
。
- 或 -
method
不是 static
方法(在 Visual Basic 中为 Shared
方法)。
- 或 -
无法绑定 method
,例如因为找不到它。
找不到 type
的 Invoke
方法。
调用方没有访问 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
参数
- target
- Object
类实例,对其调用 method
。
- method
- String
委托要表示的实例方法的名称。
- ignoreCase
- Boolean
一个布尔值,它指示在比较方法名称时是否忽略大小写。
返回
指定的类型的委托,表示要对指定的类实例调用的指定的实例方法。
例外
type
不继承 MulticastDelegate。
- 或 -
type
不是 RuntimeType
。 请参阅反射中的运行时类型。
- 或 -
method
不是实例方法。
- 或 -
无法绑定 method
,例如因为找不到它。
找不到 type
的 Invoke
方法。
调用方没有访问 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
参数
- method
- MethodInfo
描述该委托要表示的静态或实例方法的 MethodInfo。
- throwOnBindFailure
- Boolean
如果无法绑定 method
时引发异常,则为 true
;否则为 false
。
返回
表示指定静态方法或实例方法的指定类型的委托;如果 throwOnBindFailure
为 false
,并且委托无法绑定到 method
,则为 null
。
例外
type
不继承 MulticastDelegate。
- 或 -
type
不是 RuntimeType
。 请参阅反射中的运行时类型。
- 或 -
无法绑定 method
,且 throwOnBindFailure
为 true
。
- 或 -
method
不是 RuntimeMethodInfo
。 请参阅反射中的运行时类型。
找不到 type
的 Invoke
方法。
调用方没有访问 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
参数
- method
- String
委托要表示的静态方法的名称。
- ignoreCase
- Boolean
一个布尔值,它指示在比较方法名称时是否忽略大小写。
- throwOnBindFailure
- Boolean
如果无法绑定 method
时引发异常,则为 true
;否则为 false
。
返回
指定类型的委托,该委托表示指定类的指定静态方法。
例外
type
不继承 MulticastDelegate。
- 或 -
type
不是 RuntimeType
。 请参阅反射中的运行时类型。
- 或 -
target
不是 RuntimeType
。
- 或 -
target
为开放式泛型类型。 也就是说,其 ContainsGenericParameters 属性为 true
。
- 或 -
method
不是 static
方法(在 Visual Basic 中为 Shared
方法)。
- 或 -
无法绑定 method
,例如因为找不到它,并且 throwOnBindFailure
为 true
。
找不到 type
的 Invoke
方法。
调用方没有访问 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
参数
- method
- MethodInfo
描述该委托要表示的静态或实例方法的 MethodInfo。
- throwOnBindFailure
- Boolean
如果无法绑定 method
时引发异常,则为 true
;否则为 false
。
返回
表示指定静态方法的指定类型的委托。
例外
type
不继承 MulticastDelegate。
- 或 -
type
不是 RuntimeType
。 请参阅反射中的运行时类型。
- 或 -
无法绑定 method
,且 throwOnBindFailure
为 true
。
- 或 -
method
不是 RuntimeMethodInfo
。 请参阅反射中的运行时类型。
找不到 type
的 Invoke
方法。
调用方没有访问 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
参数
- target
- Object
类实例,对其调用 method
。
- method
- String
委托要表示的实例方法的名称。
返回
指定的类型的委托,表示要对指定的类实例调用的指定的实例方法。
例外
type
不继承 MulticastDelegate。
- 或 -
type
不是 RuntimeType
。 请参阅反射中的运行时类型。
- 或 -
method
不是实例方法。
- 或 -
无法绑定 method
,例如因为找不到它。
找不到 type
的 Invoke
方法。
调用方没有访问 method
所必需的权限。
注解
此方法仅为实例方法创建委托。 实例方法是与类的实例关联的方法;静态方法是与类本身关联的方法。
此方法重载等效于调用CreateDelegate(Type, Object, String, Boolean, Boolean)方法重载,为 ignoreCase
指定 false
和 true
。throwOnBindFailure
另请参阅
适用于
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
参数
- firstArgument
- Object
委托要绑定到的对象,若要将 method
作为 static
(在 Visual Basic 中为 Shared
),则为 null
。
- method
- MethodInfo
描述该委托要表示的静态或实例方法的 MethodInfo。
返回
指定类型的委托,表示指定的静态或实例方法。
例外
type
不继承 MulticastDelegate。
- 或 -
type
不是 RuntimeType
。 请参阅反射中的运行时类型。
- 或 -
无法绑定 method
。
- 或 -
method
不是 RuntimeMethodInfo
。 请参阅反射中的运行时类型。
找不到 type
的 Invoke
方法。
调用方没有访问 method
所必需的权限。
注解
调用此方法重载等效于调用 CreateDelegate(Type, Object, MethodInfo, Boolean) 方法重载并为 指定 true
throwOnBindFailure
。 这两个重载提供了最灵活的方法来创建委托。 可以使用它们为静态或实例方法创建委托,还可以选择指定第一个参数。
注意
如果未提供第一个参数,请使用 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
参数
- method
- MethodInfo
描述该委托要表示的静态或实例方法的 MethodInfo。
返回
用于表示指定方法的指定类型的委托。
例外
type
不继承 MulticastDelegate。
- 或 -
type
不是 RuntimeType
。 请参阅反射中的运行时类型。
- 或 -
无法绑定 method
。
- 或 -
method
不是 RuntimeMethodInfo
。 请参阅反射中的运行时类型。
找不到 type
的 Invoke
方法。
调用方没有访问 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
参数
- method
- String
委托要表示的静态方法的名称。
返回
指定类型的委托,该委托表示指定类的指定静态方法。
例外
type
不继承 MulticastDelegate。
- 或 -
type
不是 RuntimeType
。 请参阅反射中的运行时类型。
- 或 -
target
不是 RuntimeType
。
- 或 -
target
为开放式泛型类型。 也就是说,其 ContainsGenericParameters 属性为 true
。
- 或 -
method
不是 static
方法(在 Visual Basic 中为 Shared
方法)。
- 或 -
无法绑定 method
,例如因为找不到它,并且 throwOnBindFailure
为 true
。
找不到 type
的 Invoke
方法。
调用方没有访问 method
所必需的权限。
注解
此方法仅为静态方法创建委托。 实例方法是与类的实例关联的方法;静态方法是与类本身关联的方法。
此方法重载等效于调用CreateDelegate(Type, Type, String, Boolean, Boolean)方法重载,为 ignoreCase
指定 false
和 true
。throwOnBindFailure
另请参阅
适用于
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈