Compartir a través de


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 especificado que se va a invocar en la instancia de clase especificada, con la distinción entre mayúsculas y minúsculas especificada y el comportamiento especificado en caso de error de enlace.

CreateDelegate(Type, Type, String, Boolean)

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

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 especificada.

CreateDelegate(Type, Object, MethodInfo, Boolean)

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

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

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

CreateDelegate(Type, MethodInfo, Boolean)

Crea un delegado del tipo especificado para representar el método estático especificado, con el comportamiento especificado en caso de error de enlace.

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 especificado.

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 especificado que se va a invocar en la instancia de clase especificada, con la distinción entre mayúsculas y minúsculas especificada y el comportamiento especificado en caso de error de enlace.

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

El Type de delegado que se va a crear.

target
Object

Instancia de clase en la que se invoca method.

method
String

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

ignoreCase
Boolean

Valor booleano que indica si se omitirá el caso al comparar el nombre del método.

throwOnBindFailure
Boolean

true iniciar una excepción si no se puede enlazar method; de lo 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-

target es null.

-o-

method es null.

type no hereda MulticastDelegate.

-o-

type no es un RuntimeType. Consulte tipos en tiempo de ejecución en reflection.

-o-

method no es un método de instancia.

-o-

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 especificado de la clase especificada, con la distinción entre mayúsculas y minúsculas especificada.

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

El Type de delegado que se va a crear.

target
Type

El Type que representa la clase que implementa method.

method
String

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

ignoreCase
Boolean

Valor booleano que indica si se omitirá el caso 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-

target es null.

-o-

method es null.

type no hereda MulticastDelegate.

-o-

type no es un RuntimeType. Consulte tipos en tiempo de ejecución en reflection.

-o-

target no es un RuntimeType.

-o-

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

-o-

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

-o-

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 es equivalente a llamar a la sobrecarga del método CreateDelegate(Type, Type, String, Boolean, Boolean), 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 especificada.

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

El Type de delegado que se va a crear.

target
Object

Instancia de clase en la que se invoca method.

method
String

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

ignoreCase
Boolean

Valor booleano que indica si se omitirá el caso 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-

target es null.

-o-

method es null.

type no hereda MulticastDelegate.

-o-

type no es un RuntimeType. Consulte tipos en tiempo de ejecución en reflection.

-o-

method no es un método de instancia.

-o-

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 método CreateDelegate(Type, Object, String, Boolean, Boolean), 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 especificado, con el primer argumento especificado y el comportamiento especificado en caso de error de 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

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

firstArgument
Object

Un Object que es el primer argumento del método que representa el delegado. Por ejemplo, los métodos deben ser compatibles con el tipo de instancia.

method
MethodInfo

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

throwOnBindFailure
Boolean

true iniciar una excepción si no se puede enlazar method; de lo contrario, false.

Devoluciones

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

Excepciones

type es null.

-o-

method es null.

type no hereda MulticastDelegate.

-o-

type no es un RuntimeType. Consulte tipos en tiempo de ejecución en reflection.

-o-

method no se puede enlazar y throwOnBindFailure es true.

-o-

method no es un RuntimeMethodInfo. Consulte tipos en tiempo de ejecución en reflection.

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 método CreateDelegate(Type, Object, MethodInfo), 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 CreateDelegate(Type, MethodInfo, Boolean) para mejorar el rendimiento.

Para obtener más información y ejemplos, vea comentarios de API complementarias 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 especificado de la clase especificada, con la distinción de mayúsculas y minúsculas especificada y el comportamiento especificado en caso de error de enlace.

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

El Type de delegado que se va a crear.

target
Type

El Type que representa la clase que implementa method.

method
String

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

ignoreCase
Boolean

Valor booleano que indica si se omitirá el caso al comparar el nombre del método.

throwOnBindFailure
Boolean

true iniciar una excepción si no se puede enlazar method; de lo contrario, false.

Devoluciones

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

Excepciones

type es null.

-o-

target es null.

-o-

method es null.

type no hereda MulticastDelegate.

-o-

type no es un RuntimeType. Consulte tipos en tiempo de ejecución en reflection.

-o-

target no es un RuntimeType.

-o-

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

-o-

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

-o-

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 especificado en caso de error de enlace.

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

El Type de delegado que se va a crear.

method
MethodInfo

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

throwOnBindFailure
Boolean

true iniciar una excepción si no se puede enlazar method; de lo contrario, false.

Devoluciones

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

Excepciones

type es null.

-o-

method es null.

type no hereda MulticastDelegate.

-o-

type no es un RuntimeType. Consulte tipos en tiempo de ejecución en reflection.

-o-

method no se puede enlazar y throwOnBindFailure es true.

-o-

method no es un RuntimeMethodInfo. Consulte tipos en tiempo de ejecución en reflection.

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, consulte la sobrecarga del método de CreateDelegate(Type, Object, MethodInfo, Boolean) más general, 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 de API complementarias 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

El Type de delegado que se va a crear.

target
Object

Instancia de clase en la que se invoca 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-

target es null.

-o-

method es null.

type no hereda MulticastDelegate.

-o-

type no es un RuntimeType. Consulte tipos en tiempo de ejecución en reflection.

-o-

method no es un método de instancia.

-o-

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 método CreateDelegate(Type, Object, String, Boolean, Boolean), 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 especificado.

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

El Type de delegado que se va a crear.

firstArgument
Object

Objeto al que está enlazado el delegado o null tratar method como static (Shared en Visual Basic).

method
MethodInfo

El 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 especificado.

Excepciones

type es null.

-o-

method es null.

type no hereda MulticastDelegate.

-o-

type no es un RuntimeType. Consulte tipos en tiempo de ejecución en reflection.

-o-

method no se puede enlazar.

-o-

method no es un RuntimeMethodInfo. Consulte tipos en tiempo de ejecución en reflection.

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 método CreateDelegate(Type, Object, MethodInfo, Boolean) 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 CreateDelegate(Type, MethodInfo) para mejorar el rendimiento.

Para obtener más información sobre esta API, consulte comentarios de API complementarias 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

El Type de delegado que se va a crear.

method
MethodInfo

El 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-

method es null.

type no hereda MulticastDelegate.

-o-

type no es un RuntimeType. Consulte tipos en tiempo de ejecución en reflection.

-o-

method no se puede enlazar.

-o-

method no es un RuntimeMethodInfo. Consulte tipos en tiempo de ejecución en reflection.

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 de CreateDelegate(Type, Object, MethodInfo) más general, 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 de API complementarias 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

El Type de delegado que se va a crear.

target
Type

El Type que representa la clase que implementa method.

method
String

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

Devoluciones

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

Excepciones

type es null.

-o-

target es null.

-o-

method es null.

type no hereda MulticastDelegate.

-o-

type no es un RuntimeType. Consulte tipos en tiempo de ejecución en reflection.

-o-

target no es un RuntimeType.

-o-

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

-o-

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

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 método CreateDelegate(Type, Type, String, Boolean, Boolean), especificando false para ignoreCase y true para throwOnBindFailure.

Consulte también

Se aplica a