Delegate.CreateDelegate Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Cria um delegado do tipo especificado.
Sobrecargas
CreateDelegate(Type, Object, String, Boolean, Boolean) |
Cria um delegado do tipo especificado que representa o método de instância especificado a ser invocado na instância de classe especificada, com a diferenciação de maiúsculas e minúsculas especificada e o comportamento especificado na falha de associaçã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 diferenciação de 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 a ser invocado na instância de classe especificada com a diferenciação de 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 sobre a falha na associação. |
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 diferenciação de maiúsculas e minúsculas especificada e o comportamento especificado na falha de associaçã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 ao associar. |
CreateDelegate(Type, Object, String) |
Cria um delegado do tipo especificado que representa o método de instância especificado a ser invocado 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, MethodInfo) |
Cria um delegado do tipo especificado para representar o método especificado. |
CreateDelegate(Type, Type, String) |
Cria um delegado do tipo especificado que representa o método estático especificado da classe especificada. |
CreateDelegate(Type, Object, String, Boolean, Boolean)
- Origem:
- Delegate.CoreCLR.cs
- Origem:
- Delegate.CoreCLR.cs
- Origem:
- Delegate.CoreCLR.cs
Cria um delegado do tipo especificado que representa o método de instância especificado a ser invocado na instância de classe especificada, com a diferenciação de maiúsculas e minúsculas especificada e o comportamento especificado na falha de associaçã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);
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 na qual method
é invocado.
- method
- String
O nome do método de instância que o delegado deve representar.
- ignoreCase
- Boolean
Um booliano que 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 associado; caso contrário, false
.
Retornos
Um delegado do tipo especificado que representa o método de instância especificado a ser invocado na instância de classe especificada.
Exceções
type
não herda MulticastDelegate.
-ou-
type
não é um RuntimeType
. Consulte tipos de runtime emde reflexão.
-ou-
method
não é um método de instância.
-ou-
method
não pode ser associado, por exemplo, porque não pode ser encontrado e throwOnBindFailure
é true
.
O método Invoke
de type
não foi encontrado.
O chamador não tem as permissões necessárias para acessar method
.
Comentários
Esse método cria apenas delegados 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.
Confira também
Aplica-se a
CreateDelegate(Type, Type, String, Boolean)
- Origem:
- Delegate.cs
- Origem:
- Delegate.cs
- Origem:
- Delegate.cs
Cria um delegado do tipo especificado que representa o método estático especificado da classe especificada, com a diferenciação de 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 booliano que indica se deve ignorar o caso ao comparar o nome do método.
Retornos
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
. Consulte tipos de runtime emde reflexão.
-ou-
target
não é um RuntimeType
.
-ou-
target
é um tipo genérico aberto. Ou seja, sua propriedade ContainsGenericParameters é true
.
-ou-
method
não é um método static
( métodoShared
no Visual Basic).
-ou-
method
não pode ser associado, por exemplo, porque não pode ser encontrado.
O método Invoke
de type
não foi encontrado.
O chamador não tem as permissões necessárias para acessar method
.
Comentários
Esse método cria delegados somente 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.
Essa sobrecarga de método é equivalente a chamar a sobrecarga do método CreateDelegate(Type, Type, String, Boolean, Boolean), especificando true
para throwOnBindFailure
.
Confira também
Aplica-se a
CreateDelegate(Type, Object, String, Boolean)
- Origem:
- Delegate.cs
- Origem:
- Delegate.cs
- Origem:
- Delegate.cs
Cria um delegado do tipo especificado que representa o método de instância especificado a ser invocado na instância de classe especificada com a diferenciação de 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 na qual method
é invocado.
- method
- String
O nome do método de instância que o delegado deve representar.
- ignoreCase
- Boolean
Um booliano que indica se deve ignorar o caso ao comparar o nome do método.
Retornos
Um delegado do tipo especificado que representa o método de instância especificado a ser invocado na instância de classe especificada.
Exceções
type
não herda MulticastDelegate.
-ou-
type
não é um RuntimeType
. Consulte tipos de runtime emde reflexão.
-ou-
method
não é um método de instância.
-ou-
method
não pode ser associado, por exemplo, porque não pode ser encontrado.
O método Invoke
de type
não foi encontrado.
O chamador não tem as permissões necessárias para acessar method
.
Comentários
Esse método cria apenas delegados 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.
Essa sobrecarga de método é equivalente a chamar a sobrecarga do método CreateDelegate(Type, Object, String, Boolean, Boolean), especificando true
para throwOnBindFailure
.
Confira também
Aplica-se a
CreateDelegate(Type, Object, MethodInfo, Boolean)
- Origem:
- Delegate.CoreCLR.cs
- Origem:
- Delegate.CoreCLR.cs
- Origem:
- Delegate.CoreCLR.cs
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 sobre a falha na associaçã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);
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
Um Object que é o primeiro argumento do método que o delegado representa. Por exemplo, os métodos devem ser compatíveis com o tipo de instância.
- method
- MethodInfo
O MethodInfo que descreve 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 associado; caso contrário, false
.
Retornos
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 puder ser associado a method
.
Exceções
type
não herda MulticastDelegate.
-ou-
type
não é um RuntimeType
. Consulte tipos de runtime emde reflexão.
-ou-
method
não pode ser associado e throwOnBindFailure
é true
.
-ou-
method
não é um RuntimeMethodInfo
. Consulte tipos de runtime emde reflexão.
O método Invoke
de type
não foi encontrado.
O chamador não tem as permissões necessárias para acessar method
.
Comentários
Essa sobrecarga de método e a sobrecarga do método CreateDelegate(Type, Object, MethodInfo), que sempre gera falha ao associar, fornecem a maneira mais flexível de criar delegados. Você pode usá-los para criar delegados para métodos estáticos ou de instância, com ou sem um primeiro argumento.
Nota
Se você não fornecer um primeiro argumento, use a sobrecarga do método CreateDelegate(Type, MethodInfo, Boolean) para melhorar o desempenho.
Para obter mais informações e exemplos, consulte comentários da API Suplementar para System.Delegate.CreateDelegate.
Confira também
Aplica-se a
CreateDelegate(Type, Type, String, Boolean, Boolean)
- Origem:
- Delegate.CoreCLR.cs
- Origem:
- Delegate.CoreCLR.cs
- Origem:
- Delegate.CoreCLR.cs
Cria um delegado do tipo especificado que representa o método estático especificado da classe especificada, com a diferenciação de maiúsculas e minúsculas especificada e o comportamento especificado na falha de associaçã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);
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 booliano que 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 associado; caso contrário, false
.
Retornos
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
. Consulte tipos de runtime emde reflexão.
-ou-
target
não é um RuntimeType
.
-ou-
target
é um tipo genérico aberto. Ou seja, sua propriedade ContainsGenericParameters é true
.
-ou-
method
não é um método static
( métodoShared
no Visual Basic).
-ou-
method
não pode ser associado, por exemplo, porque não pode ser encontrado e throwOnBindFailure
é true
.
O método Invoke
de type
não foi encontrado.
O chamador não tem as permissões necessárias para acessar method
.
Comentários
Esse método cria delegados somente 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.
Confira também
Aplica-se a
CreateDelegate(Type, MethodInfo, Boolean)
- Origem:
- Delegate.CoreCLR.cs
- Origem:
- Delegate.CoreCLR.cs
- Origem:
- Delegate.CoreCLR.cs
Cria um delegado do tipo especificado para representar o método estático especificado, com o comportamento especificado em caso de falha ao associar.
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
- method
- MethodInfo
O MethodInfo que descreve 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 associado; caso contrário, false
.
Retornos
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
. Consulte tipos de runtime emde reflexão.
-ou-
method
não pode ser associado e throwOnBindFailure
é true
.
-ou-
method
não é um RuntimeMethodInfo
. Consulte tipos de runtime emde reflexão.
O método Invoke
de type
não foi encontrado.
O chamador não tem as permissões necessárias para acessar method
.
Comentários
Essa sobrecarga de método pode criar delegados de método estático aberto e delegados de método de instância aberta – ou seja, delegados que expõem o primeiro argumento oculto dos métodos de instância. Para obter uma explicação detalhada, consulte a sobrecarga de método de CreateDelegate(Type, Object, MethodInfo, Boolean) mais geral, que permite que você crie todas as combinações de delegados abertos ou fechados para métodos estáticos ou por exemplo.
Nota
Essa sobrecarga de método deve ser usada quando o delegado não é fechado sobre seu primeiro argumento, porque é um pouco mais rápido nesse caso.
Para obter exemplos, consulte comentários da API Suplementar para System.Delegate.CreateDelegate.
Confira também
Aplica-se a
CreateDelegate(Type, Object, String)
- Origem:
- Delegate.cs
- Origem:
- Delegate.cs
- Origem:
- Delegate.cs
Cria um delegado do tipo especificado que representa o método de instância especificado a ser invocado 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 na qual method
é invocado.
- method
- String
O nome do método de instância que o delegado deve representar.
Retornos
Um delegado do tipo especificado que representa o método de instância especificado a ser invocado na instância de classe especificada.
Exceções
type
não herda MulticastDelegate.
-ou-
type
não é um RuntimeType
. Consulte tipos de runtime emde reflexão.
-ou-
method
não é um método de instância.
-ou-
method
não pode ser associado, por exemplo, porque não pode ser encontrado.
O método Invoke
de type
não foi encontrado.
O chamador não tem as permissões necessárias para acessar method
.
Comentários
Esse método cria apenas delegados 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.
Essa sobrecarga de método é equivalente a chamar a sobrecarga do método CreateDelegate(Type, Object, String, Boolean, Boolean), especificando false
para ignoreCase
e true
para throwOnBindFailure
.
Confira também
Aplica-se a
CreateDelegate(Type, Object, MethodInfo)
- Origem:
- Delegate.cs
- Origem:
- Delegate.cs
- Origem:
- Delegate.cs
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);
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á associado ou null
para tratar method
como static
(Shared
no Visual Basic).
- method
- MethodInfo
O MethodInfo que descreve o método estático ou de instância que o delegado deve representar.
Retornos
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
. Consulte tipos de runtime emde reflexão.
-ou-
method
não pode ser associado.
-ou-
method
não é um RuntimeMethodInfo
. Consulte tipos de runtime emde reflexão.
O método Invoke
de type
não foi encontrado.
O chamador não tem as permissões necessárias para acessar method
.
Comentários
Chamar essa sobrecarga de método é equivalente a chamar a sobrecarga do método CreateDelegate(Type, Object, MethodInfo, Boolean) e especificar true
para throwOnBindFailure
. Essas duas sobrecargas fornecem a maneira mais flexível de criar delegados. Você pode usá-los para criar delegados para métodos estáticos ou de instância e, opcionalmente, para especificar o primeiro argumento.
Nota
Se você não fornecer um primeiro argumento, use a sobrecarga do método CreateDelegate(Type, MethodInfo) para melhorar o desempenho.
Para obter mais informações sobre essa API, consulte comentários da API Suplementar para System.Delegate.CreateDelegate.
Confira também
Aplica-se a
CreateDelegate(Type, MethodInfo)
- Origem:
- Delegate.cs
- Origem:
- Delegate.cs
- Origem:
- Delegate.cs
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 que descreve o método estático ou de instância que o delegado deve representar.
Retornos
Um delegado do tipo especificado para representar o método especificado.
Exceções
type
não herda MulticastDelegate.
-ou-
type
não é um RuntimeType
. Consulte tipos de runtime emde reflexão.
-ou-
method
não pode ser associado.
-ou-
method
não é um RuntimeMethodInfo
. Consulte tipos de runtime emde reflexão.
O método Invoke
de type
não foi encontrado.
O chamador não tem as permissões necessárias para acessar method
.
Comentários
Essa sobrecarga pode criar delegados para métodos estáticos e delegados de método de instância aberta; ou seja, delegados que fornecem explicitamente o primeiro argumento oculto dos métodos de instância. Para obter uma explicação detalhada, consulte a sobrecarga de método de CreateDelegate(Type, Object, MethodInfo) mais geral, que permite que você crie todas as combinações de delegados abertos ou fechados para métodos estáticos ou por exemplo, e, opcionalmente, especifique um primeiro argumento.
Nota
Essa sobrecarga de método deve ser usada quando o delegado não é fechado sobre seu primeiro argumento, porque é um pouco mais rápido nesse caso.
Para obter mais informações sobre essa API, consulte comentários da API Suplementar para System.Delegate.CreateDelegate.
Confira também
Aplica-se a
CreateDelegate(Type, Type, String)
- Origem:
- Delegate.cs
- Origem:
- Delegate.cs
- Origem:
- Delegate.cs
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.
Retornos
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
. Consulte tipos de runtime emde reflexão.
-ou-
target
não é um RuntimeType
.
-ou-
target
é um tipo genérico aberto. Ou seja, sua propriedade ContainsGenericParameters é true
.
-ou-
method
não é um método static
( métodoShared
no Visual Basic).
O método Invoke
de type
não foi encontrado.
O chamador não tem as permissões necessárias para acessar method
.
Comentários
Esse método cria delegados somente 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.
Essa sobrecarga de método é equivalente a chamar a sobrecarga do método CreateDelegate(Type, Type, String, Boolean, Boolean), especificando false
para ignoreCase
e true
para throwOnBindFailure
.