Esporta (0) Stampa
Espandi tutto
Espandi Riduci a icona
Il presente articolo è stato tradotto automaticamente. Passare il puntatore sulle frasi nell'articolo per visualizzare il testo originale. Ulteriori informazioni.
Traduzione
Originale

Campo OpCodes.Localloc

Esegue l'allocazione di un 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 che segue vengono indicati il formato esadecimale e il formato dell'assembly MSIL (Microsoft Intermediate Language) dell'istruzione, insieme a un breve riepilogo di riferimento:

Format

Formato dell'assembly

Descrizione

FE 0F

localloc

Esegue l'allocazione di spazio dall'heap locale.

Di seguito viene riportato 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 viene allocata dall'heap locale.

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

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

L'indirizzo risultante è allineato in modo tale che qualsiasi tipo di dati primitivo possa essere memorizzato utilizzando le istruzioni stind, ad esempio Stind_I4, e caricato utilizzando le istruzioni ldind, ad esempio Ldind_I4.

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

L'eccezione StackOverflowException viene generata quando la memoria non è sufficiente a soddisfare la richiesta.

Nel seguente overload di metodi Emit è possibile utilizzare il codice operativo localloc:

  • ILGenerator.Emit(OpCode)

.NET Framework

Supportato in: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Supportato in: 4, 3.5 SP1

.NET per applicazioni Windows Store

Supportato in: Windows 8

.NET per applicazioni Windows Phone

Supportato in: Windows Phone 8, Silverlight 8.1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (ruoli di base del server non supportati), Windows Server 2008 R2 (ruoli di base del server supportati con SP1 o versione successiva, Itanium non supportato)

.NET Framework non supporta tutte le versioni di ciascuna piattaforma. Per un elenco delle versioni supportate, vedere Requisiti di sistema di .NET Framework.

Aggiunte alla community

AGGIUNGI
Mostra:
© 2014 Microsoft