OpCodes.Stloc Campo

Definizione

Popa il valore corrente dall'inizio dello stack di valutazione e lo archivia nell'elenco di variabili locali in corrispondenza di un indice specificato.

public: static initonly System::Reflection::Emit::OpCode Stloc;
public static readonly System.Reflection.Emit.OpCode Stloc;
 staticval mutable Stloc : System.Reflection.Emit.OpCode
Public Shared ReadOnly Stloc As OpCode 

Valore del campo

OpCode

Commenti

La tabella seguente elenca il formato dell'assembly esadecimale e Microsoft Intermediate Language (MSIL), insieme a un breve riepilogo di riferimento:

Formato Formato assembly Descrizione
FE 0E < unsigned int16 > stloc index Popa un valore dallo stack e lo archivia nella variabile indexlocale .

Il comportamento di transizione dello stack, in ordine sequenziale, è:

  1. Un valore viene rimosso dallo stack e inserito nella variabile indexlocale .

L'istruzione stloc popa il valore superiore dello stack di valutazione e lo sposta nel numero indexdi variabile locale, dove le variabili locali vengono numerate 0 in avanti. Il tipo del valore deve corrispondere al tipo della variabile locale, come specificato nella firma locale del metodo corrente.

L'archiviazione in locali che contengono un valore intero inferiore a 4 byte tronca il valore mentre passa dallo stack alla variabile locale. I valori a virgola mobile vengono arrotondati dalle dimensioni native (tipo F) alle dimensioni associate all'argomento.

Le istruzioni di Microsoft Intermediate Language (MSIL) corrette richiedono che index sia un indice locale valido. Per l'istruzione, deve trovarsi nell'intervallo stloc compreso tra 0 e 65534 (in particolare, index 65535 non è valido). Il motivo dell'esclusione di 65535 è pragmatico: probabilmente le implementazioni useranno un intero a 2 byte per tenere traccia sia dell'indice locale che del numero totale di locali per un determinato metodo. Se è stato reso valido un indice di 65535, sarebbe necessario un intero più ampio per tenere traccia del numero di locali in tale metodo.

Gli overload del metodo seguenti Emit possono usare il stloc codice opcode:

Si applica a