Delegate.CreateDelegate Método

Definição

Cria um delegado do tipo especificado.

Sobrecargas

Name Description
CreateDelegate(Type, Type, String, Boolean, Boolean)

Cria um delegado do tipo especificado que representa o método estático especificado da classe especificada, com a sensibilidade a maiúsculas e minúsculas especificadas e o comportamento especificado em caso de falha em vinculação.

CreateDelegate(Type, Type, String, Boolean)

Cria um delegado do tipo especificado que representa o método estático especificado da classe especificada, com a sensibilidade a maiúsculas e minúsculas especificada.

CreateDelegate(Type, Object, String, Boolean)

Cria um delegado do tipo especificado que representa o método de instância especificado para invocar na instância de classe especificada com a sensibilidade a maiúsculas e minúsculas especificada.

CreateDelegate(Type, Object, MethodInfo, Boolean)

Cria um delegado do tipo especificado que representa o método estático ou de instância especificado, com o primeiro argumento especificado e o comportamento especificado em caso de falha em vinculação.

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

Cria um delegado do tipo especificado que representa o método de instância especificado a invocar na instância de classe especificada, com a sensibilidade a maiúsculas e minúsculas especificadas e o comportamento especificado em caso de falha em vinculação.

CreateDelegate(Type, MethodInfo, Boolean)

Cria um delegado do tipo especificado para representar o método estático especificado, com o comportamento especificado em caso de falha na ligação.

CreateDelegate(Type, Object, String)

Cria um delegado do tipo especificado que representa o método de instância especificado a invocar na instância de classe especificada.

CreateDelegate(Type, Object, MethodInfo)

Cria um delegado do tipo especificado que representa o método estático ou de instância especificado, com o primeiro argumento especificado.

CreateDelegate(Type, Type, String)

Cria um delegado do tipo especificado que representa o método estático especificado da classe especificada.

CreateDelegate(Type, MethodInfo)

Cria um delegado do tipo especificado para representar o método especificado.

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

Cria um delegado do tipo especificado que representa o método estático especificado da classe especificada, com a sensibilidade a maiúsculas e minúsculas especificadas e o comportamento especificado em caso de falha em vinculação.

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);
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

O Type de delegar para criar.

target
Type

A Type representa a classe que implementa method.

method
String

O nome do método estático que o delegado deve representar.

ignoreCase
Boolean

Um Booleano indica se deve ignorar o caso ao comparar o nome do método.

throwOnBindFailure
Boolean

true lançar uma exceção se method não puder ser vinculada; caso contrário, false.

Devoluções

Um delegado do tipo especificado que representa o método estático especificado da classe especificada.

Exceções

type é null.

-ou-

target é null.

-ou-

method é null.

type não herda MulticastDelegate.

-ou-

type não é um RuntimeType. Ver Tipos de Execução em Reflexão).

-ou-

target não é um RuntimeType.

-ou-

target é um tipo genérico aberto. Ou seja, a sua ContainsGenericParameters propriedade é true.

-ou-

não é um método ( em Visual Basic).

-ou-

method não pode ser ligado, por exemplo porque não pode ser encontrado, e throwOnBindFailure é true.

O Invoke método de type não é encontrado.

O chamador não tem as permissões necessárias para aceder methoda .

Observações

Este método cria delegados apenas para métodos estáticos. Um método de instância é um método associado a uma instância de uma classe; Um método estático é um método associado à própria classe.

Ver também

Aplica-se a

CreateDelegate(Type, Type, String, Boolean)

Cria um delegado do tipo especificado que representa o método estático especificado da classe especificada, com a sensibilidade a maiúsculas e 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

O Type de delegar para criar.

target
Type

A Type representa a classe que implementa method.

method
String

O nome do método estático que o delegado deve representar.

ignoreCase
Boolean

Um Booleano indica se deve ignorar o caso ao comparar o nome do método.

Devoluções

Um delegado do tipo especificado que representa o método estático especificado da classe especificada.

Exceções

type é null.

-ou-

target é null.

-ou-

method é null.

type não herda MulticastDelegate.

-ou-

type não é um RuntimeType. Ver Tipos de Execução em Reflexão).

-ou-

target não é um RuntimeType.

-ou-

target é um tipo genérico aberto. Ou seja, a sua ContainsGenericParameters propriedade é true.

-ou-

não é um método ( em Visual Basic).

-ou-

method não pode ser encadernado, por exemplo, porque não pode ser encontrado.

O Invoke método de type não é encontrado.

O chamador não tem as permissões necessárias para aceder methoda .

Observações

Este método cria delegados apenas para métodos estáticos. Um método de instância é um método associado a uma instância de uma classe; Um método estático é um método associado à própria classe.

Esta sobrecarga de método é equivalente a chamar a sobrecarga CreateDelegate(Type, Type, String, Boolean, Boolean) do método, especificando true para throwOnBindFailure.

Ver também

Aplica-se a

CreateDelegate(Type, Object, String, Boolean)

Cria um delegado do tipo especificado que representa o método de instância especificado para invocar na instância de classe especificada com a sensibilidade a maiúsculas e 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

O Type de delegar para criar.

target
Object

A instância de classe em que method é invocada.

method
String

O nome do método de instância que o delegado deve representar.

ignoreCase
Boolean

Um Booleano indica se deve ignorar o caso ao comparar o nome do método.

Devoluções

Um delegado do tipo especificado que representa o método de instância especificado a invocar na instância de classe especificada.

Exceções

type é null.

-ou-

target é null.

-ou-

method é null.

type não herda MulticastDelegate.

-ou-

type não é um RuntimeType. Ver Tipos de Execução em Reflexão).

-ou-

method não é um método de instância.

-ou-

method não pode ser encadernado, por exemplo, porque não pode ser encontrado.

O Invoke método de type não é encontrado.

O chamador não tem as permissões necessárias para aceder methoda .

Observações

Este método cria delegados apenas para métodos de instância. Um método de instância é um método associado a uma instância de uma classe; Um método estático é um método associado à própria classe.

Esta sobrecarga de método é equivalente a chamar a sobrecarga CreateDelegate(Type, Object, String, Boolean, Boolean) do método, especificando true para throwOnBindFailure.

Ver também

Aplica-se a

CreateDelegate(Type, Object, MethodInfo, Boolean)

Cria um delegado do tipo especificado que representa o método estático ou de instância especificado, com o primeiro argumento especificado e o comportamento especificado em caso de falha em vinculação.

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);
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

A Type representa o tipo de delegado a criar.

firstArgument
Object

E esse é o primeiro argumento do método que Object o delegado representa. Para métodos de instância, deve ser compatível com o tipo de instância.

method
MethodInfo

O MethodInfo método de descrever o método estático ou de instância que o delegado deve representar.

throwOnBindFailure
Boolean

true lançar uma exceção se method não puder ser vinculada; caso contrário, false.

Devoluções

Um delegado do tipo especificado que representa o método estático ou de instância especificado, ou null se throwOnBindFailure for false e o delegado, não pode ser vinculado a method.

Exceções

type é null.

-ou-

method é null.

type não herda MulticastDelegate.

-ou-

type não é um RuntimeType. Ver Tipos de Execução em Reflexão).

-ou-

method não pode ser ligado, e throwOnBindFailure é true.

-ou-

method não é um RuntimeMethodInfo. Ver Tipos de Execução em Reflexão).

O Invoke método de type não é encontrado.

O chamador não tem as permissões necessárias para aceder methoda .

Observações

Esta sobrecarga de métodos e a CreateDelegate(Type, Object, MethodInfo) sobrecarga de método, que implica sempre falha em vincular, fornecem a forma mais flexível de criar delegados. Pode usá-los para criar delegados para métodos estáticos ou de instância, com ou sem um primeiro argumento.

Note

Se não fornecer um primeiro argumento, use o CreateDelegate(Type, MethodInfo, Boolean) método overload para melhor desempenho.

Para mais informações e exemplos, consulte Observações suplementares da API para System.Delegate.CreateDelegate.

Ver também

Aplica-se a

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

Cria um delegado do tipo especificado que representa o método de instância especificado a invocar na instância de classe especificada, com a sensibilidade a maiúsculas e minúsculas especificadas e o comportamento especificado em caso de falha em vinculação.

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);
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

O Type de delegar para criar.

target
Object

A instância de classe em que method é invocada.

method
String

O nome do método de instância que o delegado deve representar.

ignoreCase
Boolean

Um Booleano indica se deve ignorar o caso ao comparar o nome do método.

throwOnBindFailure
Boolean

true lançar uma exceção se method não puder ser vinculada; caso contrário, false.

Devoluções

Um delegado do tipo especificado que representa o método de instância especificado a invocar na instância de classe especificada.

Exceções

type é null.

-ou-

target é null.

-ou-

method é null.

type não herda MulticastDelegate.

-ou-

type não é um RuntimeType. Ver Tipos de Execução em Reflexão).

-ou-

method não é um método de instância.

-ou-

method não pode ser ligado, por exemplo porque não pode ser encontrado, e throwOnBindFailure é true.

O Invoke método de type não é encontrado.

O chamador não tem as permissões necessárias para aceder methoda .

Observações

Este método cria delegados apenas para métodos de instância. Um método de instância é um método associado a uma instância de uma classe; Um método estático é um método associado à própria classe.

Ver também

Aplica-se a

CreateDelegate(Type, MethodInfo, Boolean)

Cria um delegado do tipo especificado para representar o método estático especificado, com o comportamento especificado em caso de falha na ligação.

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

O Type de delegar para criar.

method
MethodInfo

O MethodInfo método de descrever o método estático ou de instância que o delegado deve representar.

throwOnBindFailure
Boolean

true lançar uma exceção se method não puder ser vinculada; caso contrário, false.

Devoluções

Um delegado do tipo especificado para representar o método estático especificado.

Exceções

type é null.

-ou-

method é null.

type não herda MulticastDelegate.

-ou-

type não é um RuntimeType. Ver Tipos de Execução em Reflexão).

-ou-

method não pode ser ligado, e throwOnBindFailure é true.

-ou-

method não é um RuntimeMethodInfo. Ver Tipos de Execução em Reflexão).

O Invoke método de type não é encontrado.

O chamador não tem as permissões necessárias para aceder methoda .

Observações

Esta sobrecarga de métodos pode criar delegados de métodos estáticos abertos e delegados de métodos de instância abertos – ou seja, delegados que expõem o primeiro argumento oculto dos métodos de instância. Para uma explicação detalhada, veja a sobrecarga de métodos mais geral CreateDelegate(Type, Object, MethodInfo, Boolean) , que permite criar todas as combinações de delegados abertos ou fechados, por exemplo ou métodos estáticos.

Note

Esta sobrecarga de métodos deve ser usada quando o delegado não está fechado sobre o seu primeiro argumento, porque nesse caso é um pouco mais rápido.

Para exemplos, veja Observações suplementares da API para System.Delegate.CreateDelegate.

Ver também

Aplica-se a

CreateDelegate(Type, Object, String)

Cria um delegado do tipo especificado que representa o método de instância especificado a invocar na instância de classe 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

O Type de delegar para criar.

target
Object

A instância de classe em que method é invocada.

method
String

O nome do método de instância que o delegado deve representar.

Devoluções

Um delegado do tipo especificado que representa o método de instância especificado a invocar na instância de classe especificada.

Exceções

type é null.

-ou-

target é null.

-ou-

method é null.

type não herda MulticastDelegate.

-ou-

type não é um RuntimeType. Ver Tipos de Execução em Reflexão).

-ou-

method não é um método de instância.

-ou-

method não pode ser encadernado, por exemplo, porque não pode ser encontrado.

O Invoke método de type não é encontrado.

O chamador não tem as permissões necessárias para aceder methoda .

Observações

Este método cria delegados apenas para métodos de instância. Um método de instância é um método associado a uma instância de uma classe; Um método estático é um método associado à própria classe.

Esta sobrecarga de métodos é equivalente a chamar sobrecarga CreateDelegate(Type, Object, String, Boolean, Boolean) de método, especificando false para ignoreCase e true para throwOnBindFailure.

Ver também

Aplica-se a

CreateDelegate(Type, Object, MethodInfo)

Cria um delegado do tipo especificado que representa o método estático ou de instância especificado, com o primeiro 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);
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

O Type de delegar para criar.

firstArgument
Object

O objeto ao qual o delegado está vinculado, ou null tratar method como static (Shared em Visual Basic).

method
MethodInfo

O MethodInfo método de descrever o método estático ou de instância que o delegado deve representar.

Devoluções

Um delegado do tipo especificado que representa o método estático ou de instância especificado.

Exceções

type é null.

-ou-

method é null.

type não herda MulticastDelegate.

-ou-

type não é um RuntimeType. Ver Tipos de Execução em Reflexão).

-ou-

method não pode ser vinculado.

-ou-

method não é um RuntimeMethodInfo. Ver Tipos de Execução em Reflexão).

O Invoke método de type não é encontrado.

O chamador não tem as permissões necessárias para aceder methoda .

Observações

Chamar a este método overload é equivalente a chamar o CreateDelegate(Type, Object, MethodInfo, Boolean) método overload e especificar true para throwOnBindFailure. Estas duas sobrecargas proporcionam a forma mais flexível de criar delegados. Pode usá-los para criar delegados para métodos estáticos ou de instância, e opcionalmente para especificar o primeiro argumento.

Note

Se não apresentares um primeiro argumento, usa o CreateDelegate(Type, MethodInfo) método overload para melhor desempenho.

Para mais informações sobre esta API, consulte Observações Suplementares da API para System.Delegate.CreateDelegate.

Ver também

Aplica-se a

CreateDelegate(Type, Type, String)

Cria um delegado do tipo especificado que representa o método estático especificado da classe 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

O Type de delegar para criar.

target
Type

A Type representa a classe que implementa method.

method
String

O nome do método estático que o delegado deve representar.

Devoluções

Um delegado do tipo especificado que representa o método estático especificado da classe especificada.

Exceções

type é null.

-ou-

target é null.

-ou-

method é null.

type não herda MulticastDelegate.

-ou-

type não é um RuntimeType. Ver Tipos de Execução em Reflexão).

-ou-

target não é um RuntimeType.

-ou-

target é um tipo genérico aberto. Ou seja, a sua ContainsGenericParameters propriedade é true.

-ou-

não é um método ( em Visual Basic).

O Invoke método de type não é encontrado.

O chamador não tem as permissões necessárias para aceder methoda .

Observações

Este método cria delegados apenas para métodos estáticos. Um método de instância é um método associado a uma instância de uma classe; Um método estático é um método associado à própria classe.

Esta sobrecarga de métodos é equivalente a chamar sobrecarga CreateDelegate(Type, Type, String, Boolean, Boolean) de método, especificando false para ignoreCase e true para throwOnBindFailure.

Ver também

Aplica-se a

CreateDelegate(Type, MethodInfo)

Cria um delegado do tipo especificado para representar o 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

O Type de delegar para criar.

method
MethodInfo

O MethodInfo método de descrever o método estático ou de instância que o delegado deve representar.

Devoluções

Um delegado do tipo especificado para representar o método especificado.

Exceções

type é null.

-ou-

method é null.

type não herda MulticastDelegate.

-ou-

type não é um RuntimeType. Ver Tipos de Execução em Reflexão).

-ou-

method não pode ser vinculado.

-ou-

method não é um RuntimeMethodInfo. Ver Tipos de Execução em Reflexão).

O Invoke método de type não é encontrado.

O chamador não tem as permissões necessárias para aceder methoda .

Observações

Esta sobrecarga pode criar delegados para métodos estáticos e delegados de métodos de instância aberta; isto é, delegados que fornecem explicitamente o primeiro argumento oculto dos métodos de instância. Para uma explicação detalhada, veja a sobrecarga de métodos mais geral CreateDelegate(Type, Object, MethodInfo) , que permite criar todas as combinações de delegados abertos ou fechados para métodos de exemplo ou estáticos, e opcionalmente especificar um primeiro argumento.

Note

Esta sobrecarga de métodos deve ser usada quando o delegado não está fechado sobre o seu primeiro argumento, porque nesse caso é um pouco mais rápido.

Para mais informações sobre esta API, consulte Observações Suplementares da API para System.Delegate.CreateDelegate.

Ver também

Aplica-se a