Delegate.CreateDelegate Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
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
- 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 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-
-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
- 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 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-
-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
- 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 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
- 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 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
- 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 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
- 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 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
- 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 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
- 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 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
- 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 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-
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
- 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 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.