Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Campo OpCodes.Localloc

 

Data di pubblicazione: ottobre 2016

Alloca un determinato numero di byte dal pool di memoria dinamica locale e inserisce l'indirizzo (un puntatore transitorio, di tipo *) del primo byte allocato nello stack di valutazione.

Spazio dei nomi:   System.Reflection.Emit
Assembly:  mscorlib (in mscorlib.dll)

public static readonly OpCode Localloc

Nella tabella seguente sono elencate le istruzioni esadecimale e formato assembly Microsoft Intermediate Language (MSIL), insieme a un breve riepilogo di riferimento:

Formato

Formato dell'assembly

Descrizione

0F FE

localloc

Allocare spazio dall'heap locale.

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

  1. Il numero di byte da allocare viene inserito nello stack.

  2. Il numero di byte viene estratto dallo stack; una quantità di memoria corrispondente alla dimensione allocata dall'heap locale.

  3. Un puntatore al primo byte della memoria allocata viene inserito nello stack.

Il localloc istruzione alloca size (tipo natural unsigned int) del pool di byte di memoria dinamica locale e restituisce l'indirizzo (un puntatore transitorio, di tipo *) del primo byte allocato. Il blocco di memoria restituito viene inizializzata su 0 solo se il flag di inizializzazione nel metodo true. Quando il metodo corrente viene eseguito un Ret, il pool di memoria locale è reso disponibile per il riutilizzo.

L'indirizzo risulta è allineato in modo che qualsiasi tipo di dati primitivo possa essere memorizzato utilizzando il stind istruzioni (ad esempio Stind_I4) e caricato utilizzando il ldind istruzioni (ad esempio Ldind_I4).

Il localloc istruzione non può verificarsi all'interno di un filter, catch, finally, o fault blocco.

StackOverflowException viene generata se la memoria è insufficiente per soddisfare la richiesta.

Nell'esempio Emit overload del metodo è possibile utilizzare il localloc opcode:

  • ILGenerator.Emit(OpCode)

Universal Windows Platform
Disponibile da 8
.NET Framework
Disponibile da 1.1
Libreria di classi portabile
Supportato in: piattaforme .NET portabili
Silverlight
Disponibile da 2.0
Windows Phone Silverlight
Disponibile da 7.1
Windows Phone
Disponibile da 8.1
Torna all'inizio
Mostra: