RuntimeHelpers.PrepareMethod Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Prepara un metodo da includere in un'area a esecuzione limitata (CER).
Overload
PrepareMethod(RuntimeMethodHandle) |
Prepara un metodo da includere in un'area a esecuzione limitata (CER). |
PrepareMethod(RuntimeMethodHandle, RuntimeTypeHandle[]) |
Prepara un metodo da includere in un'area a esecuzione limitata (CER) con la creazione dell'istanza specificata. |
PrepareMethod(RuntimeMethodHandle)
- Origine:
- RuntimeHelpers.CoreCLR.cs
- Origine:
- RuntimeHelpers.CoreCLR.cs
- Origine:
- RuntimeHelpers.CoreCLR.cs
Prepara un metodo da includere in un'area a esecuzione limitata (CER).
public:
static void PrepareMethod(RuntimeMethodHandle method);
public static void PrepareMethod (RuntimeMethodHandle method);
[System.Security.SecurityCritical]
public static void PrepareMethod (RuntimeMethodHandle method);
static member PrepareMethod : RuntimeMethodHandle -> unit
[<System.Security.SecurityCritical>]
static member PrepareMethod : RuntimeMethodHandle -> unit
Public Shared Sub PrepareMethod (method As RuntimeMethodHandle)
Parametri
- method
- RuntimeMethodHandle
Handle del metodo da preparare.
- Attributi
Commenti
I compilatori usano il PrepareMethod(RuntimeMethodHandle) metodo per gestire le chiamate virtuali effettuate all'interno di un'area di esecuzione vincolata . In fase di compilazione JIT, Common Language Runtime in genere non dispone di informazioni sufficienti sulla destinazione di una chiamata virtuale. Pertanto, il runtime non prepara inizialmente tale segmento del grafico delle chiamate. Se il codice che usa l'cer dispone di conoscenze sufficienti per determinare la destinazione in qualsiasi momento prima che l'cer venga effettivamente immesso, può chiamare PrepareMethod(RuntimeMethodHandle) per eseguire la stessa preparazione di runtime eseguita normalmente per un cer rooted nel metodo specificato come argomento.
Si applica a
PrepareMethod(RuntimeMethodHandle, RuntimeTypeHandle[])
- Origine:
- RuntimeHelpers.CoreCLR.cs
- Origine:
- RuntimeHelpers.CoreCLR.cs
- Origine:
- RuntimeHelpers.CoreCLR.cs
Prepara un metodo da includere in un'area a esecuzione limitata (CER) con la creazione dell'istanza specificata.
public:
static void PrepareMethod(RuntimeMethodHandle method, cli::array <RuntimeTypeHandle> ^ instantiation);
public static void PrepareMethod (RuntimeMethodHandle method, RuntimeTypeHandle[]? instantiation);
[System.Security.SecurityCritical]
public static void PrepareMethod (RuntimeMethodHandle method, RuntimeTypeHandle[] instantiation);
public static void PrepareMethod (RuntimeMethodHandle method, RuntimeTypeHandle[] instantiation);
static member PrepareMethod : RuntimeMethodHandle * RuntimeTypeHandle[] -> unit
[<System.Security.SecurityCritical>]
static member PrepareMethod : RuntimeMethodHandle * RuntimeTypeHandle[] -> unit
Public Shared Sub PrepareMethod (method As RuntimeMethodHandle, instantiation As RuntimeTypeHandle())
Parametri
- method
- RuntimeMethodHandle
Handle del metodo da preparare.
- instantiation
- RuntimeTypeHandle[]
Creazione di istanza da passare al metodo.
- Attributi
Commenti
È possibile fornire il supporto generics per i compilatori usando il PrepareMethod(RuntimeMethodHandle, RuntimeTypeHandle[]) metodo . Common Language Runtime non può preparare le aree di esecuzione vincolate (CER) rooted in un metodo con parametri di tipo generici (un parametro di tipo nella classe contenente il metodo o uno nel metodo stesso) quando tali parametri di tipo vengono create come tipi di riferimento.
È possibile usare questo overload per passare un'istanza specifica (ad esempio una matrice di tipi), specificando prima i parametri del tipo di classe (se presenti), seguiti dai parametri del tipo di metodo (se presenti). Il runtime prepara la creazione di un'istanza del metodo . Questa operazione è necessaria solo se le istanze usate contengono almeno un parametro di tipo riferimento. Pertanto, è possibile usare una clausola di tipo try
CER in un metodo generico (o un metodo non generico in una classe generica) e funzionerà in modo affidabile con istanze di Int32 o altri tipi valore. Per creare un'istanza di tipi di riferimento, ad Stringesempio , è prima necessario usare un metodo esplicito PrepareMethod(RuntimeMethodHandle, RuntimeTypeHandle[]) nel metodo radice CER.