Delegate.CreateDelegate Metodo

Definizione

Crea un delegato del tipo specificato.

Overload

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

Crea un delegato del tipo specificato che rappresenta il metodo di istanza specificato, per il richiamo dell'istanza di classe specificata, con la distinzione tra maiuscole e minuscole specificata e il funzionamento specificato in caso di errore di associazione.

CreateDelegate(Type, Type, String, Boolean)

Crea un delegato del tipo indicato che rappresenta il metodo statico specificato della classe indicata, con la distinzione tra maiuscole e minuscole specificata.

CreateDelegate(Type, Object, String, Boolean)

Crea un delegato del tipo specificato che rappresenta il metodo di istanza specificato, per il richiamo dell'istanza di classe specificata, con la distinzione tra maiuscole e minuscole specificata.

CreateDelegate(Type, Object, MethodInfo, Boolean)

Crea un delegato del tipo specificato che rappresenta il metodo statico o il metodo di istanza indicato, con il primo argomento specificato e il funzionamento indicato in caso di errore di associazione.

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

Crea un delegato del tipo specificato che rappresenta il metodo statico indicato della classe specificata, con la distinzione tra maiuscole e minuscole indicata e il funzionamento specificato in caso di errore di associazione.

CreateDelegate(Type, MethodInfo, Boolean)

Crea un delegato del tipo indicato per rappresentare il metodo statico specificato, in cui viene indicato anche il funzionamento in caso di errore di associazione.

CreateDelegate(Type, Object, String)

Crea un delegato del tipo specificato che rappresenta il metodo di istanza specificato per il richiamo dell'istanza di classe specificata.

CreateDelegate(Type, Object, MethodInfo)

Crea un delegato del tipo specificato che rappresenta il metodo statico o il metodo di istanza indicato, con il primo argomento specificato.

CreateDelegate(Type, MethodInfo)

Crea un delegato del tipo specificato per rappresentare il metodo specificato.

CreateDelegate(Type, Type, String)

Crea un delegato del tipo specificato che rappresenta il metodo statico specificato della classe specificata.

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

Source:
Delegate.CoreCLR.cs
Source:
Delegate.CoreCLR.cs
Source:
Delegate.CoreCLR.cs

Crea un delegato del tipo specificato che rappresenta il metodo di istanza specificato, per il richiamo dell'istanza di classe specificata, con la distinzione tra maiuscole e minuscole specificata e il funzionamento specificato in caso di errore di associazione.

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

Parametri

type
Type

Type del delegato da creare.

target
Object

Istanza di classe per la quale viene richiamato method.

method
String

Nome del metodo di istanza che deve essere rappresentato dal delegato.

ignoreCase
Boolean

Valore booleano che indica se ignorare o meno la distinzione tra maiuscole e minuscole al momento di confrontare il nome del metodo.

throwOnBindFailure
Boolean

true per generare un'eccezione se non è possibile associare method. In caso contrario, false.

Restituisce

Delegato del tipo specificato che rappresenta il metodo di istanza specificato per il richiamo dell'istanza di classe specificata.

Eccezioni

type è null.

-oppure-

target è null.

-oppure-

method è null.

type non eredita MulticastDelegate.

-oppure-

type non è un oggetto RuntimeType. Vedere Tipi di runtime nella reflection.

-oppure-

method non è un metodo di istanza.

-oppure-

Non è possibile associare method, ad esempio perché non è stato trovato, e throwOnBindFailure è true.

Non è possibile trovare il metodo Invoke di type.

Il chiamante non ha le autorizzazioni necessarie per accedere a method.

Commenti

Questo metodo crea delegati solo per i metodi di istanza. Un metodo di istanza è un metodo associato a un'istanza di una classe; un metodo statico è un metodo associato alla classe stessa.

Vedi anche

Si applica a

CreateDelegate(Type, Type, String, Boolean)

Source:
Delegate.cs
Source:
Delegate.cs
Source:
Delegate.cs

Crea un delegato del tipo indicato che rappresenta il metodo statico specificato della classe indicata, con la distinzione tra maiuscole e minuscole specificata.

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

Parametri

type
Type

Type del delegato da creare.

target
Type

Type che rappresenta la classe che implementa method.

method
String

Nome del metodo statico che deve essere rappresentato dal delegato.

ignoreCase
Boolean

Valore booleano che indica se ignorare o meno la distinzione tra maiuscole e minuscole al momento di confrontare il nome del metodo.

Restituisce

Delegato del tipo specificato che rappresenta il metodo statico specificato della classe specificata.

Eccezioni

type è null.

-oppure-

target è null.

-oppure-

method è null.

type non eredita MulticastDelegate.

-oppure-

type non è un oggetto RuntimeType. Vedere Tipi di runtime nella reflection.

-oppure-

target non è un oggetto RuntimeType.

-oppure-

target è un tipo generico aperto. Ciò significa che la proprietà ContainsGenericParameters è true.

-oppure-

method non è un metodo static (metodo Shared in Visual Basic).

-oppure-

Non possibile associare method, ad esempio perché non è stato trovato.

Non è possibile trovare il metodo Invoke di type.

Il chiamante non ha le autorizzazioni necessarie per accedere a method.

Commenti

Questo metodo crea delegati solo per i metodi statici. Un metodo di istanza è un metodo associato a un'istanza di una classe; un metodo statico è un metodo associato alla classe stessa.

Questo overload del metodo equivale a chiamare l'overload del CreateDelegate(Type, Type, String, Boolean, Boolean) metodo, specificando true per throwOnBindFailure.

Vedi anche

Si applica a

CreateDelegate(Type, Object, String, Boolean)

Source:
Delegate.cs
Source:
Delegate.cs
Source:
Delegate.cs

Crea un delegato del tipo specificato che rappresenta il metodo di istanza specificato, per il richiamo dell'istanza di classe specificata, con la distinzione tra maiuscole e minuscole specificata.

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

Parametri

type
Type

Type del delegato da creare.

target
Object

Istanza di classe per la quale viene richiamato method.

method
String

Nome del metodo di istanza che deve essere rappresentato dal delegato.

ignoreCase
Boolean

Valore booleano che indica se ignorare o meno la distinzione tra maiuscole e minuscole al momento di confrontare il nome del metodo.

Restituisce

Delegato del tipo specificato che rappresenta il metodo di istanza specificato per il richiamo dell'istanza di classe specificata.

Eccezioni

type è null.

-oppure-

target è null.

-oppure-

method è null.

type non eredita MulticastDelegate.

-oppure-

type non è un oggetto RuntimeType. Vedere Tipi di runtime nella reflection.

-oppure-

method non è un metodo di istanza.

-oppure-

Non possibile associare method, ad esempio perché non è stato trovato.

Non è possibile trovare il metodo Invoke di type.

Il chiamante non ha le autorizzazioni necessarie per accedere a method.

Commenti

Questo metodo crea delegati solo per i metodi di istanza. Un metodo di istanza è un metodo associato a un'istanza di una classe; un metodo statico è un metodo associato alla classe stessa.

Questo overload del metodo equivale a chiamare l'overload del CreateDelegate(Type, Object, String, Boolean, Boolean) metodo, specificando true per throwOnBindFailure.

Vedi anche

Si applica a

CreateDelegate(Type, Object, MethodInfo, Boolean)

Source:
Delegate.CoreCLR.cs
Source:
Delegate.CoreCLR.cs
Source:
Delegate.CoreCLR.cs

Crea un delegato del tipo specificato che rappresenta il metodo statico o il metodo di istanza indicato, con il primo argomento specificato e il funzionamento indicato in caso di errore di associazione.

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

Parametri

type
Type

Type che rappresenta il tipo di delegato da creare.

firstArgument
Object

Object che rappresenta il primo argomento del metodo rappresentato dal delegato. Per i metodi di istanza, tale oggetto deve essere compatibile con il tipo di istanza.

method
MethodInfo

MethodInfo che descrive il metodo statico o il metodo di istanza che deve essere rappresentato dal delegato.

throwOnBindFailure
Boolean

true per generare un'eccezione se non è possibile associare method. In caso contrario, false.

Restituisce

Delegato del tipo specificato che rappresenta il metodo statico o di istanza specificato oppure null se throwOnBindFailure è false e non è possibile associare il delegato a method.

Eccezioni

type è null.

-oppure-

method è null.

type non eredita MulticastDelegate.

-oppure-

type non è un oggetto RuntimeType. Vedere Tipi di runtime nella reflection.

-oppure-

method non può essere associato e throwOnBindFailure è true.

-oppure-

method non è un oggetto RuntimeMethodInfo. Vedere Tipi di runtime nella reflection.

Non è possibile trovare il metodo Invoke di type.

Il chiamante non ha le autorizzazioni necessarie per accedere a method.

Commenti

Questo overload del metodo e l'overload del CreateDelegate(Type, Object, MethodInfo) metodo, che genera sempre un errore di associazione, offrono il modo più flessibile per creare delegati. È possibile usarli per creare delegati per metodi statici o di istanza, con o senza un primo argomento.

Nota

Se non si specifica un primo argomento, usare l'overload del CreateDelegate(Type, MethodInfo, Boolean) metodo per ottenere prestazioni migliori.

Per altre informazioni ed esempi, vedere Note sulle API supplementari per System.Delegate.CreateDelegate.

Vedi anche

Si applica a

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

Source:
Delegate.CoreCLR.cs
Source:
Delegate.CoreCLR.cs
Source:
Delegate.CoreCLR.cs

Crea un delegato del tipo specificato che rappresenta il metodo statico indicato della classe specificata, con la distinzione tra maiuscole e minuscole indicata e il funzionamento specificato in caso di errore di associazione.

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

Parametri

type
Type

Type del delegato da creare.

target
Type

Type che rappresenta la classe che implementa method.

method
String

Nome del metodo statico che deve essere rappresentato dal delegato.

ignoreCase
Boolean

Valore booleano che indica se ignorare o meno la distinzione tra maiuscole e minuscole al momento di confrontare il nome del metodo.

throwOnBindFailure
Boolean

true per generare un'eccezione se non è possibile associare method. In caso contrario, false.

Restituisce

Delegato del tipo specificato che rappresenta il metodo statico specificato della classe specificata.

Eccezioni

type è null.

-oppure-

target è null.

-oppure-

method è null.

type non eredita MulticastDelegate.

-oppure-

type non è un oggetto RuntimeType. Vedere Tipi di runtime nella reflection.

-oppure-

target non è un oggetto RuntimeType.

-oppure-

target è un tipo generico aperto. Ciò significa che la proprietà ContainsGenericParameters è true.

-oppure-

method non è un metodo static (metodo Shared in Visual Basic).

-oppure-

Non è possibile associare method, ad esempio perché non è stato trovato, e throwOnBindFailure è true.

Non è possibile trovare il metodo Invoke di type.

Il chiamante non ha le autorizzazioni necessarie per accedere a method.

Commenti

Questo metodo crea delegati solo per i metodi statici. Un metodo di istanza è un metodo associato a un'istanza di una classe; un metodo statico è un metodo associato alla classe stessa.

Vedi anche

Si applica a

CreateDelegate(Type, MethodInfo, Boolean)

Source:
Delegate.CoreCLR.cs
Source:
Delegate.CoreCLR.cs
Source:
Delegate.CoreCLR.cs

Crea un delegato del tipo indicato per rappresentare il metodo statico specificato, in cui viene indicato anche il funzionamento in caso di errore di associazione.

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

Parametri

type
Type

Type del delegato da creare.

method
MethodInfo

MethodInfo che descrive il metodo statico o il metodo di istanza che deve essere rappresentato dal delegato.

throwOnBindFailure
Boolean

true per generare un'eccezione se non è possibile associare method. In caso contrario, false.

Restituisce

Delegato del tipo specificato che rappresenta il metodo statico specificato.

Eccezioni

type è null.

-oppure-

method è null.

type non eredita MulticastDelegate.

-oppure-

type non è un oggetto RuntimeType. Vedere Tipi di runtime nella reflection.

-oppure-

method non può essere associato e throwOnBindFailure è true.

-oppure-

method non è un oggetto RuntimeMethodInfo. Vedere Tipi di runtime nella reflection.

Non è possibile trovare il metodo Invoke di type.

Il chiamante non ha le autorizzazioni necessarie per accedere a method.

Commenti

Questo overload del metodo può creare delegati di metodo statici aperti e delegati del metodo di istanza aperta, ovvero delegati che espongono il primo argomento nascosto dei metodi di istanza. Per una spiegazione dettagliata, vedere l'overload del metodo più generale CreateDelegate(Type, Object, MethodInfo, Boolean) , che consente di creare tutte le combinazioni di delegati aperti o chiusi per esempio o metodi statici.

Nota

Questo overload del metodo deve essere usato quando il delegato non viene chiuso sul primo argomento, perché è leggermente più veloce in questo caso.

Per esempi, vedere Note sulle API supplementari per System.Delegate.CreateDelegate.

Vedi anche

Si applica a

CreateDelegate(Type, Object, String)

Source:
Delegate.cs
Source:
Delegate.cs
Source:
Delegate.cs

Crea un delegato del tipo specificato che rappresenta il metodo di istanza specificato per il richiamo dell'istanza di classe specificata.

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

Parametri

type
Type

Type del delegato da creare.

target
Object

Istanza di classe per la quale viene richiamato method.

method
String

Nome del metodo di istanza che deve essere rappresentato dal delegato.

Restituisce

Delegato del tipo specificato che rappresenta il metodo di istanza specificato per il richiamo dell'istanza di classe specificata.

Eccezioni

type è null.

-oppure-

target è null.

-oppure-

method è null.

type non eredita MulticastDelegate.

-oppure-

type non è un oggetto RuntimeType. Vedere Tipi di runtime nella reflection.

-oppure-

method non è un metodo di istanza.

-oppure-

Non possibile associare method, ad esempio perché non è stato trovato.

Non è possibile trovare il metodo Invoke di type.

Il chiamante non ha le autorizzazioni necessarie per accedere a method.

Commenti

Questo metodo crea delegati solo per i metodi di istanza. Un metodo di istanza è un metodo associato a un'istanza di una classe; un metodo statico è un metodo associato alla classe stessa.

Questo overload del metodo equivale a chiamare l'overload del CreateDelegate(Type, Object, String, Boolean, Boolean) metodo, specificando false per ignoreCase e true per throwOnBindFailure.

Vedi anche

Si applica a

CreateDelegate(Type, Object, MethodInfo)

Source:
Delegate.cs
Source:
Delegate.cs
Source:
Delegate.cs

Crea un delegato del tipo specificato che rappresenta il metodo statico o il metodo di istanza indicato, con il primo argomento specificato.

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

Parametri

type
Type

Type del delegato da creare.

firstArgument
Object

Oggetto a cui il delegato è associato oppure null per trattare method come static (Shared in Visual Basic).

method
MethodInfo

MethodInfo che descrive il metodo statico o il metodo di istanza che deve essere rappresentato dal delegato.

Restituisce

Delegato del tipo specificato che rappresenta il metodo statico o di istanza specificato.

Eccezioni

type è null.

-oppure-

method è null.

type non eredita MulticastDelegate.

-oppure-

type non è un oggetto RuntimeType. Vedere Tipi di runtime nella reflection.

-oppure-

method non può essere associato.

-oppure-

method non è un oggetto RuntimeMethodInfo. Vedere Tipi di runtime nella reflection.

Non è possibile trovare il metodo Invoke di type.

Il chiamante non ha le autorizzazioni necessarie per accedere a method.

Commenti

La chiamata di questo overload di metodo equivale a chiamare l'overload del CreateDelegate(Type, Object, MethodInfo, Boolean) metodo e specificare true per throwOnBindFailure. Questi due overload offrono il modo più flessibile per creare delegati. È possibile usarli per creare delegati per metodi statici o di istanza e facoltativamente per specificare il primo argomento.

Nota

Se non si specifica un primo argomento, usare l'overload del CreateDelegate(Type, MethodInfo) metodo per ottenere prestazioni migliori.

Per altre informazioni su questa API, vedere Osservazioni api supplementari per System.Delegate.CreateDelegate.

Vedi anche

Si applica a

CreateDelegate(Type, MethodInfo)

Source:
Delegate.cs
Source:
Delegate.cs
Source:
Delegate.cs

Crea un delegato del tipo specificato per rappresentare il metodo specificato.

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

Parametri

type
Type

Type del delegato da creare.

method
MethodInfo

MethodInfo che descrive il metodo statico o il metodo di istanza che deve essere rappresentato dal delegato.

Restituisce

Delegato del tipo specificato per rappresentare il metodo specificato.

Eccezioni

type è null.

-oppure-

method è null.

type non eredita MulticastDelegate.

-oppure-

type non è un oggetto RuntimeType. Vedere Tipi di runtime nella reflection.

-oppure-

method non può essere associato.

-oppure-

method non è un oggetto RuntimeMethodInfo. Vedere Tipi di runtime nella reflection.

Non è possibile trovare il metodo Invoke di type.

Il chiamante non ha le autorizzazioni necessarie per accedere a method.

Commenti

Questo overload può creare delegati per i metodi statici e i delegati del metodo dell'istanza aperta; ovvero, delegati che specificano in modo esplicito il primo argomento nascosto dei metodi di istanza. Per una spiegazione dettagliata, vedere l'overload del metodo più generale CreateDelegate(Type, Object, MethodInfo) , che consente di creare tutte le combinazioni di delegati aperti o chiusi per esempio o metodi statici e facoltativamente per specificare un primo argomento.

Nota

Questo overload del metodo deve essere usato quando il delegato non viene chiuso sul primo argomento, perché è leggermente più veloce in questo caso.

Per altre informazioni su questa API, vedere Osservazioni api supplementari per System.Delegate.CreateDelegate.

Vedi anche

Si applica a

CreateDelegate(Type, Type, String)

Source:
Delegate.cs
Source:
Delegate.cs
Source:
Delegate.cs

Crea un delegato del tipo specificato che rappresenta il metodo statico specificato della classe specificata.

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

Parametri

type
Type

Type del delegato da creare.

target
Type

Type che rappresenta la classe che implementa method.

method
String

Nome del metodo statico che deve essere rappresentato dal delegato.

Restituisce

Delegato del tipo specificato che rappresenta il metodo statico specificato della classe specificata.

Eccezioni

type è null.

-oppure-

target è null.

-oppure-

method è null.

type non eredita MulticastDelegate.

-oppure-

type non è un oggetto RuntimeType. Vedere Tipi di runtime nella reflection.

-oppure-

target non è un oggetto RuntimeType.

-oppure-

target è un tipo generico aperto. Ciò significa che la proprietà ContainsGenericParameters è true.

-oppure-

method non è un metodo static (metodo Shared in Visual Basic).

-oppure-

Non è possibile associare method, ad esempio perché non è stato trovato, e throwOnBindFailure è true.

Non è possibile trovare il metodo Invoke di type.

Il chiamante non ha le autorizzazioni necessarie per accedere a method.

Commenti

Questo metodo crea delegati solo per i metodi statici. Un metodo di istanza è un metodo associato a un'istanza di una classe; un metodo statico è un metodo associato alla classe stessa.

Questo overload di metodo equivale a chiamare l'overload del CreateDelegate(Type, Type, String, Boolean, Boolean) metodo, specificando false per ignoreCase e true per throwOnBindFailure.

Vedi anche

Si applica a