Delegate.CreateDelegate Método

Definición

Crea un delegado del tipo especificado.

Sobrecargas

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

Crea un delegado del tipo especificado que representa el método de instancia determinado que se va a invocar en la instancia de clase especificada, con la distinción de mayúsculas y minúsculas y el comportamiento que se hayan concretado para cuando se produce un error al enlazar.

CreateDelegate(Type, Type, String, Boolean)

Crea un delegado del tipo especificado que representa el método estático determinado de la clase especificada, con la distinción de mayúsculas y minúsculas definida.

CreateDelegate(Type, Object, String, Boolean)

Crea un delegado del tipo especificado que representa el método de instancia especificado que se va a invocar en la instancia de clase especificada con la distinción de mayúsculas y minúsculas que se haya especificado.

CreateDelegate(Type, Object, MethodInfo, Boolean)

Crea un delegado del tipo especificado que representa el método estático o de instancia determinado, con el primer argumento definido y el comportamiento especificado si se produce un error en el enlace.

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

Crea un delegado del tipo especificado que representa el método estático determinado de la clase especificada, con la distinción de mayúsculas y minúsculas definida y el comportamiento que se haya concretado para cuando se produce un error al enlazar.

CreateDelegate(Type, MethodInfo, Boolean)

Crea un delegado del tipo especificado para representar el método estático especificado, con el comportamiento establecido para el caso de que se produzca un error al enlazar.

CreateDelegate(Type, Object, String)

Crea un delegado del tipo especificado que representa el método de instancia especificado que se va a invocar en la instancia de clase especificada.

CreateDelegate(Type, Object, MethodInfo)

Crea un delegado del tipo especificado que representa el método estático o de instancia especificado, con el primer argumento definido.

CreateDelegate(Type, MethodInfo)

Crea un delegado del tipo especificado para representar el método especificado.

CreateDelegate(Type, Type, String)

Crea un delegado del tipo especificado que representa el método estático especificado de la clase especificada.

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

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

Crea un delegado del tipo especificado que representa el método de instancia determinado que se va a invocar en la instancia de clase especificada, con la distinción de mayúsculas y minúsculas y el comportamiento que se hayan concretado para cuando se produce un error al enlazar.

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

Parámetros

type
Type

Type de delegado que se va a crear.

target
Object

Instancia de clase en la que se invoca a method.

method
String

Nombre del método de instancia que el delegado va a representar.

ignoreCase
Boolean

Valor booleano que indica si debe omitirse la distinción de mayúsculas y minúsculas al comparar el nombre del método.

throwOnBindFailure
Boolean

true para iniciar una excepción si no se puede enlazar method; en caso contrario, false.

Devoluciones

Delegado del tipo especificado que representa el método de instancia especificado que se va a invocar en la instancia de clase especificada.

Excepciones

type es null.

O bien

target es null.

O bien

method es null.

type no hereda MulticastDelegate.

o bien

type no es un RuntimeType. Consulte Tipos de reflexión en tiempo de ejecución.

o bien

method no es un método de instancia.

o bien

method no se puede enlazar (por ejemplo, porque no se encuentra) y throwOnBindFailure es true.

No se encuentra el método Invoke de type.

El autor de la llamada no tiene los permisos necesarios para acceder a method.

Comentarios

Este método crea delegados solo para métodos de instancia. Un método de instancia es un método asociado a una instancia de una clase; un método estático es un método asociado a la propia clase.

Consulte también

Se aplica a

CreateDelegate(Type, Type, String, Boolean)

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

Crea un delegado del tipo especificado que representa el método estático determinado de la clase especificada, con la distinción de mayúsculas y minúsculas definida.

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

Parámetros

type
Type

Type de delegado que se va a crear.

target
Type

Type que representa la clase que implementa method.

method
String

Nombre del método estático que va a representar el delegado.

ignoreCase
Boolean

Valor booleano que indica si debe omitirse la distinción de mayúsculas y minúsculas al comparar el nombre del método.

Devoluciones

Delegado del tipo especificado que representa el método estático especificado de la clase especificada.

Excepciones

type es null.

O bien

target es null.

O bien

method es null.

type no hereda MulticastDelegate.

o bien

type no es un RuntimeType. Consulte Tipos de reflexión en tiempo de ejecución.

o bien

target no es un RuntimeType.

o bien

target es un tipo genérico abierto. Es decir, su propiedad ContainsGenericParameters es true.

o bien

method no es un método static (método Shared en Visual Basic).

o bien

method no se puede enlazar, por ejemplo, porque no se encuentra.

No se encuentra el método Invoke de type.

El autor de la llamada no tiene los permisos necesarios para acceder a method.

Comentarios

Este método crea delegados solo para métodos estáticos. Un método de instancia es un método asociado a una instancia de una clase; un método estático es un método asociado a la propia clase.

Esta sobrecarga de método equivale a llamar a la sobrecarga del CreateDelegate(Type, Type, String, Boolean, Boolean) método, especificando true para throwOnBindFailure.

Consulte también

Se aplica a

CreateDelegate(Type, Object, String, Boolean)

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

Crea un delegado del tipo especificado que representa el método de instancia especificado que se va a invocar en la instancia de clase especificada con la distinción de mayúsculas y minúsculas que se haya especificado.

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

Parámetros

type
Type

Type de delegado que se va a crear.

target
Object

Instancia de clase en la que se invoca a method.

method
String

Nombre del método de instancia que el delegado va a representar.

ignoreCase
Boolean

Valor booleano que indica si debe omitirse la distinción de mayúsculas y minúsculas al comparar el nombre del método.

Devoluciones

Delegado del tipo especificado que representa el método de instancia especificado que se va a invocar en la instancia de clase especificada.

Excepciones

type es null.

O bien

target es null.

O bien

method es null.

type no hereda MulticastDelegate.

o bien

type no es un RuntimeType. Consulte Tipos de reflexión en tiempo de ejecución.

o bien

method no es un método de instancia.

o bien

method no se puede enlazar, por ejemplo, porque no se encuentra.

No se encuentra el método Invoke de type.

El autor de la llamada no tiene los permisos necesarios para acceder a method.

Comentarios

Este método crea delegados solo para métodos de instancia. Un método de instancia es un método asociado a una instancia de una clase; un método estático es un método asociado a la propia clase.

Esta sobrecarga de método equivale a llamar a la sobrecarga del CreateDelegate(Type, Object, String, Boolean, Boolean) método, especificando true para throwOnBindFailure.

Consulte también

Se aplica a

CreateDelegate(Type, Object, MethodInfo, Boolean)

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

Crea un delegado del tipo especificado que representa el método estático o de instancia determinado, con el primer argumento definido y el comportamiento especificado si se produce un error en el enlace.

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

Parámetros

type
Type

Type que representa el tipo de delegado que se va a crear.

firstArgument
Object

Object que es el primer argumento del método que representa el delegado. Para los métodos de instancia, debe ser compatible con el tipo de instancia.

method
MethodInfo

MethodInfo que describe el método estático o de instancia que el delegado va a representar.

throwOnBindFailure
Boolean

true para iniciar una excepción si no se puede enlazar method; en caso contrario, false.

Devoluciones

Delegado del tipo especificado que representa el método estático o de instancia determinado, o null si throwOnBindFailure es false y no se puede enlazar el delegado a method.

Excepciones

type es null.

O bien

method es null.

type no hereda MulticastDelegate.

o bien

type no es un RuntimeType. Consulte Tipos de reflexión en tiempo de ejecución.

o bien

method no se puede enlazar y throwOnBindFailure es true.

o bien

method no es un RuntimeMethodInfo. Consulte Tipos de reflexión en tiempo de ejecución.

No se encuentra el método Invoke de type.

El autor de la llamada no tiene los permisos necesarios para acceder a method.

Comentarios

Esta sobrecarga de método y la sobrecarga del CreateDelegate(Type, Object, MethodInfo) método, que siempre produce un error al enlazar, proporcionan la manera más flexible de crear delegados. Puede usarlos para crear delegados para métodos estáticos o de instancia, con o sin un primer argumento.

Nota

Si no proporciona un primer argumento, use la sobrecarga del método para mejorar el CreateDelegate(Type, MethodInfo, Boolean) rendimiento.

Para obtener más información y ejemplos, consulte Comentarios complementarios de api para System.Delegate.CreateDelegate.

Consulte también

Se aplica a

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

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

Crea un delegado del tipo especificado que representa el método estático determinado de la clase especificada, con la distinción de mayúsculas y minúsculas definida y el comportamiento que se haya concretado para cuando se produce un error al enlazar.

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

Parámetros

type
Type

Type de delegado que se va a crear.

target
Type

Type que representa la clase que implementa method.

method
String

Nombre del método estático que va a representar el delegado.

ignoreCase
Boolean

Valor booleano que indica si debe omitirse la distinción de mayúsculas y minúsculas al comparar el nombre del método.

throwOnBindFailure
Boolean

true para iniciar una excepción si no se puede enlazar method; en caso contrario, false.

Devoluciones

Delegado del tipo especificado que representa el método estático especificado de la clase especificada.

Excepciones

type es null.

O bien

target es null.

O bien

method es null.

type no hereda MulticastDelegate.

o bien

type no es un RuntimeType. Consulte Tipos de reflexión en tiempo de ejecución.

o bien

target no es un RuntimeType.

o bien

target es un tipo genérico abierto. Es decir, su propiedad ContainsGenericParameters es true.

o bien

method no es un método static (método Shared en Visual Basic).

o bien

method no se puede enlazar (por ejemplo, porque no se encuentra) y throwOnBindFailure es true.

No se encuentra el método Invoke de type.

El autor de la llamada no tiene los permisos necesarios para acceder a method.

Comentarios

Este método crea delegados solo para métodos estáticos. Un método de instancia es un método asociado a una instancia de una clase; un método estático es un método asociado a la propia clase.

Consulte también

Se aplica a

CreateDelegate(Type, MethodInfo, Boolean)

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

Crea un delegado del tipo especificado para representar el método estático especificado, con el comportamiento establecido para el caso de que se produzca un error al enlazar.

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

Parámetros

type
Type

Type de delegado que se va a crear.

method
MethodInfo

MethodInfo que describe el método estático o de instancia que el delegado va a representar.

throwOnBindFailure
Boolean

true para iniciar una excepción si no se puede enlazar method; en caso contrario, false.

Devoluciones

Delegado del tipo especificado para representar el método estático especificado.

Excepciones

type es null.

O bien

method es null.

type no hereda MulticastDelegate.

o bien

type no es un RuntimeType. Consulte Tipos de reflexión en tiempo de ejecución.

o bien

method no se puede enlazar y throwOnBindFailure es true.

o bien

method no es un RuntimeMethodInfo. Consulte Tipos de reflexión en tiempo de ejecución.

No se encuentra el método Invoke de type.

El autor de la llamada no tiene los permisos necesarios para acceder a method.

Comentarios

Esta sobrecarga de método puede crear delegados de método estático abiertos y delegados de métodos de instancia abiertos, es decir, delegados que exponen el primer argumento oculto de los métodos de instancia. Para obtener una explicación detallada, vea la sobrecarga del método más general CreateDelegate(Type, Object, MethodInfo, Boolean) , que permite crear todas las combinaciones de delegados abiertos o cerrados para los métodos estáticos o de instancia.

Nota

Esta sobrecarga de método se debe usar cuando el delegado no se cierra sobre su primer argumento, ya que es algo más rápido en ese caso.

Para obtener ejemplos, consulte Comentarios complementarios de api para System.Delegate.CreateDelegate.

Consulte también

Se aplica a

CreateDelegate(Type, Object, String)

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

Crea un delegado del tipo especificado que representa el método de instancia especificado que se va a invocar en la instancia de clase especificada.

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

Parámetros

type
Type

Type de delegado que se va a crear.

target
Object

Instancia de clase en la que se invoca a method.

method
String

Nombre del método de instancia que el delegado va a representar.

Devoluciones

Delegado del tipo especificado que representa el método de instancia especificado que se va a invocar en la instancia de clase especificada.

Excepciones

type es null.

O bien

target es null.

O bien

method es null.

type no hereda MulticastDelegate.

o bien

type no es un RuntimeType. Consulte Tipos de reflexión en tiempo de ejecución.

o bien

method no es un método de instancia.

o bien

method no se puede enlazar, por ejemplo, porque no se encuentra.

No se encuentra el método Invoke de type.

El autor de la llamada no tiene los permisos necesarios para acceder a method.

Comentarios

Este método crea delegados solo para métodos de instancia. Un método de instancia es un método asociado a una instancia de una clase; un método estático es un método asociado a la propia clase.

Esta sobrecarga de método es equivalente a llamar a la sobrecarga del CreateDelegate(Type, Object, String, Boolean, Boolean) método, especificando false para ignoreCase y true para throwOnBindFailure.

Consulte también

Se aplica a

CreateDelegate(Type, Object, MethodInfo)

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

Crea un delegado del tipo especificado que representa el método estático o de instancia especificado, con el primer argumento definido.

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

Parámetros

type
Type

Type de delegado que se va a crear.

firstArgument
Object

Objeto al que se enlaza el delegado o null para tratar method como static (Shared en Visual Basic).

method
MethodInfo

MethodInfo que describe el método estático o de instancia que el delegado va a representar.

Devoluciones

Delegado del tipo especificado que representa el método estático o de instancia definido.

Excepciones

type es null.

O bien

method es null.

type no hereda MulticastDelegate.

o bien

type no es un RuntimeType. Consulte Tipos de reflexión en tiempo de ejecución.

o bien

method no se puede enlazar.

o bien

method no es un RuntimeMethodInfo. Consulte Tipos de reflexión en tiempo de ejecución.

No se encuentra el método Invoke de type.

El autor de la llamada no tiene los permisos necesarios para acceder a method.

Comentarios

Llamar a esta sobrecarga de método equivale a llamar a la sobrecarga del CreateDelegate(Type, Object, MethodInfo, Boolean) método y especificar true para throwOnBindFailure. Estas dos sobrecargas proporcionan la manera más flexible de crear delegados. Puede usarlos para crear delegados para métodos estáticos o de instancia y, opcionalmente, para especificar el primer argumento.

Nota

Si no proporciona un primer argumento, use la sobrecarga del método para mejorar el CreateDelegate(Type, MethodInfo) rendimiento.

Para obtener más información sobre esta API, consulte Comentarios complementarios de api para System.Delegate.CreateDelegate.

Consulte también

Se aplica a

CreateDelegate(Type, MethodInfo)

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

Crea un delegado del tipo especificado para representar el método especificado.

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

Parámetros

type
Type

Type de delegado que se va a crear.

method
MethodInfo

MethodInfo que describe el método estático o de instancia que el delegado va a representar.

Devoluciones

Delegado del tipo especificado para representar el método especificado.

Excepciones

type es null.

O bien

method es null.

type no hereda MulticastDelegate.

o bien

type no es un RuntimeType. Consulte Tipos de reflexión en tiempo de ejecución.

o bien

method no se puede enlazar.

o bien

method no es un RuntimeMethodInfo. Consulte Tipos de reflexión en tiempo de ejecución.

No se encuentra el método Invoke de type.

El autor de la llamada no tiene los permisos necesarios para acceder a method.

Comentarios

Esta sobrecarga puede crear delegados para métodos estáticos y delegados de métodos de instancia abiertos; es decir, delegados que proporcionan explícitamente el primer argumento oculto de los métodos de instancia. Para obtener una explicación detallada, vea la sobrecarga del método más general CreateDelegate(Type, Object, MethodInfo) , que permite crear todas las combinaciones de delegados abiertos o cerrados para los métodos estáticos o de instancia, y opcionalmente especificar un primer argumento.

Nota

Esta sobrecarga de método se debe usar cuando el delegado no se cierra sobre su primer argumento, ya que es algo más rápido en ese caso.

Para obtener más información sobre esta API, consulte Comentarios complementarios de api para System.Delegate.CreateDelegate.

Consulte también

Se aplica a

CreateDelegate(Type, Type, String)

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

Crea un delegado del tipo especificado que representa el método estático especificado de la clase especificada.

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

Parámetros

type
Type

Type de delegado que se va a crear.

target
Type

Type que representa la clase que implementa method.

method
String

Nombre del método estático que va a representar el delegado.

Devoluciones

Delegado del tipo especificado que representa el método estático especificado de la clase especificada.

Excepciones

type es null.

O bien

target es null.

O bien

method es null.

type no hereda MulticastDelegate.

o bien

type no es un RuntimeType. Consulte Tipos de reflexión en tiempo de ejecución.

o bien

target no es un RuntimeType.

o bien

target es un tipo genérico abierto. Es decir, su propiedad ContainsGenericParameters es true.

o bien

method no es un método static (método Shared en Visual Basic).

o bien

method no se puede enlazar (por ejemplo, porque no se encuentra) y throwOnBindFailure es true.

No se encuentra el método Invoke de type.

El autor de la llamada no tiene los permisos necesarios para acceder a method.

Comentarios

Este método crea delegados solo para métodos estáticos. Un método de instancia es un método asociado a una instancia de una clase; un método estático es un método asociado a la propia clase.

Esta sobrecarga de método es equivalente a llamar a la sobrecarga del CreateDelegate(Type, Type, String, Boolean, Boolean) método, especificando false para ignoreCase y true para throwOnBindFailure.

Consulte también

Se aplica a