Delegate.CreateDelegate Método

Definição

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 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, 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 da 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 de instância ou estático especificado, com o primeiro argumento especificado e o comportamento especificado na falha para 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 em falhas especificado a ser associado.

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

CreateDelegate(Type, Object, MethodInfo)

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

O Type do representante a ser criado.

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 indicando se é necessário ignorar as maiúsculas durante a comparação do nome do método.

throwOnBindFailure
Boolean

true para lançar uma exceção caso method não possa ser associado; do contrário, false.

Retornos

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

Exceções

type é null.

- ou -

target é null.

- ou -

method é null.

type não herda MulticastDelegate.

- ou -

type não é um RuntimeType. Consulte Runtime Types in Reflection (Tipos de tempo de execução na reflexão).

- ou -

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

- ou -

method não pode ser associado, por exemplo, porque não foi 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 apenas para métodos de instância. Método de instância é um método associado a uma instância de uma classe; 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

type
Type

O Type do representante a ser criado.

target
Type

O Type que representa a classe que implementa method.

method
String

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

ignoreCase
Boolean

Um booliano indicando se é necessário ignorar as maiúsculas durante a comparação do nome do método.

Retornos

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

Exceções

type é null.

- ou -

target é null.

- ou -

method é null.

type não herda MulticastDelegate.

- ou -

type não é um RuntimeType. Consulte Runtime Types in Reflection (Tipos de tempo de execução na reflexão).

- ou -

target não é um RuntimeType.

- ou -

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

- ou -

O method não é um método static (método Shared no Visual Basic).

- ou -

O method não pode ser associado, por exemplo, porque não foi 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 apenas para métodos estáticos. Método de instância é um método associado a uma instância de uma classe; método estático é um método associado à própria classe.

Essa sobrecarga de método é equivalente a chamar a sobrecarga do CreateDelegate(Type, Type, String, Boolean, Boolean) método, 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 da 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

type
Type

O Type do representante a ser criado.

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 indicando se é necessário ignorar as maiúsculas durante a comparação do 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 da classe especificada.

Exceções

type é null.

- ou -

target é null.

- ou -

method é null.

type não herda MulticastDelegate.

- ou -

type não é um RuntimeType. Consulte Runtime Types in Reflection (Tipos de tempo de execução na reflexão).

- ou -

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

- ou -

O method não pode ser associado, por exemplo, porque não foi 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 apenas para métodos de instância. Método de instância é um método associado a uma instância de uma classe; método estático é um método associado à própria classe.

Essa sobrecarga de método é equivalente a chamar a sobrecarga do CreateDelegate(Type, Object, String, Boolean, Boolean) método, 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 de instância ou estático especificado, com o primeiro argumento especificado e o comportamento especificado na falha para 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

type
Type

Um Type que representa o tipo de delegado a ser criado.

firstArgument
Object

Um Object que é o primeiro argumento do método que o delegado representa. Por exemplo, para métodos, ele deve ser compatível com o tipo de instância.

method
MethodInfo

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

throwOnBindFailure
Boolean

true para lançar uma exceção caso method não possa ser associado; do contrário, false.

Retornos

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

Exceções

type é null.

- ou -

method é null.

type não herda MulticastDelegate.

- ou -

type não é um RuntimeType. Consulte Runtime Types in Reflection (Tipos de tempo de execução na reflexão).

- ou -

method não pode ser associado e throwOnBindFailure é true.

- ou -

method não é um RuntimeMethodInfo. Consulte Runtime Types in Reflection (Tipos de tempo de execução na 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 CreateDelegate(Type, Object, MethodInfo) método, que sempre gera falha na associação, 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.

Observação

Se você não fornecer um primeiro argumento, use a sobrecarga do método para melhorar o CreateDelegate(Type, MethodInfo, Boolean) desempenho.

Para obter mais informações e exemplos, consulte Comentários da API complementar 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

type
Type

O Type do representante a ser criado.

target
Type

O Type que representa a classe que implementa method.

method
String

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

ignoreCase
Boolean

Um booliano indicando se é necessário ignorar as maiúsculas durante a comparação do nome do método.

throwOnBindFailure
Boolean

true para lançar uma exceção caso method não possa ser associado; do contrário, false.

Retornos

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

Exceções

type é null.

- ou -

target é null.

- ou -

method é null.

type não herda MulticastDelegate.

- ou -

type não é um RuntimeType. Consulte Runtime Types in Reflection (Tipos de tempo de execução na reflexão).

- ou -

target não é um RuntimeType.

- ou -

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

- ou -

O method não é um método static (método Shared no Visual Basic).

- ou -

method não pode ser associado, por exemplo, porque não foi 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. Método de instância é um método associado a uma instância de uma classe; 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 em falhas especificado a ser associado.

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

O Type do representante a ser criado.

method
MethodInfo

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

throwOnBindFailure
Boolean

true para lançar uma exceção caso method não possa ser associado; do contrário, false.

Retornos

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. Consulte Runtime Types in Reflection (Tipos de tempo de execução na reflexão).

- ou -

method não pode ser associado e throwOnBindFailure é true.

- ou -

method não é um RuntimeMethodInfo. Consulte Runtime Types in Reflection (Tipos de tempo de execução na 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 abertos 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 mais geral CreateDelegate(Type, Object, MethodInfo, Boolean) , que permite que você crie todas as combinações de delegados abertos ou fechados para métodos estáticos ou de instância.

Observação

Essa sobrecarga de método deve ser usada quando o delegado não é fechado sobre seu primeiro argumento, pois é um pouco mais rápido nesse caso.

Para obter exemplos, consulte Comentários da API Complementar 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 da 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 do representante a ser criado.

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

Exceções

type é null.

- ou -

target é null.

- ou -

method é null.

type não herda MulticastDelegate.

- ou -

type não é um RuntimeType. Consulte Runtime Types in Reflection (Tipos de tempo de execução na reflexão).

- ou -

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

- ou -

O method não pode ser associado, por exemplo, porque não foi 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 apenas para métodos de instância. Método de instância é um método associado a uma instância de uma classe; método estático é um método associado à própria classe.

Essa sobrecarga de método é equivalente a chamar a sobrecarga do CreateDelegate(Type, Object, String, Boolean, Boolean) método, especificando false para e true para throwOnBindFailureignoreCase .

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 de instância ou estático 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

type
Type

O Type do representante a ser criado.

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 representante deve representar.

Retornos

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

Exceções

type é null.

- ou -

method é null.

type não herda MulticastDelegate.

- ou -

type não é um RuntimeType. Consulte Runtime Types in Reflection (Tipos de tempo de execução na reflexão).

- ou -

method não pode ser associado.

- ou -

method não é um RuntimeMethodInfo. Consulte Runtime Types in Reflection (Tipos de tempo de execução na 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 CreateDelegate(Type, Object, MethodInfo, Boolean) método 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.

Observação

Se você não fornecer um primeiro argumento, use a sobrecarga do método para melhorar o CreateDelegate(Type, MethodInfo) desempenho.

Para obter mais informações sobre essa API, consulte Comentários da API Complementar 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

type
Type

O Type do representante a ser criado.

method
MethodInfo

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

Retornos

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. Consulte Runtime Types in Reflection (Tipos de tempo de execução na reflexão).

- ou -

method não pode ser associado.

- ou -

method não é um RuntimeMethodInfo. Consulte Runtime Types in Reflection (Tipos de tempo de execução na 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 mais geral CreateDelegate(Type, Object, MethodInfo) , que permite que você crie todas as combinações de delegados abertos ou fechados para métodos estáticos ou de instância e, opcionalmente, especifique um primeiro argumento.

Observação

Essa sobrecarga de método deve ser usada quando o delegado não é fechado sobre seu primeiro argumento, pois é um pouco mais rápido nesse caso.

Para obter mais informações sobre essa API, consulte Comentários da API Complementar 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

type
Type

O Type do representante a ser criado.

target
Type

O Type que representa a classe que implementa method.

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 especificado estático da classe especificada.

Exceções

type é null.

- ou -

target é null.

- ou -

method é null.

type não herda MulticastDelegate.

- ou -

type não é um RuntimeType. Consulte Runtime Types in Reflection (Tipos de tempo de execução na reflexão).

- ou -

target não é um RuntimeType.

- ou -

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

- ou -

O method não é um método static (método Shared no Visual Basic).

- ou -

method não pode ser associado, por exemplo, porque não foi 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 apenas para métodos estáticos. Método de instância é um método associado a uma instância de uma classe; método estático é um método associado à própria classe.

Essa sobrecarga de método é equivalente a chamar a sobrecarga do CreateDelegate(Type, Type, String, Boolean, Boolean) método, especificando false para e true para throwOnBindFailureignoreCase .

Confira também

Aplica-se a