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
,并为 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
参数
- firstArgument
- Object
委托绑定到的对象,或 null
将 method
视为 static
(在 Visual Basic 中Shared
)。
- method
- MethodInfo
描述委托要表示的静态或实例方法的 MethodInfo。
返回
表示指定静态或实例方法的指定类型的委托。
例外
type
不继承 MulticastDelegate。
-或-
type
不是 RuntimeType
。 请参阅反射中的
-或-
无法绑定 method
。
-或-
method
不是 RuntimeMethodInfo
。 请参阅反射中的
找不到 type
的 Invoke
方法。
调用方没有访问 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
创建指定类型的委托来表示指定的方法。
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
方法)。
找不到 type
的 Invoke
方法。
调用方没有访问 method
所需的权限。
注解
此方法仅为静态方法创建委托。 实例方法是与类实例关联的方法;静态方法是与类本身关联的方法。
此方法重载等效于调用 CreateDelegate(Type, Type, String, Boolean, Boolean) 方法重载,为 ignoreCase
指定 false
,并为 throwOnBindFailure
指定 true
。