Condividi tramite


OpCodes.Conv_U2 Campo

Definizione

Converte il valore all'inizio dello stack di valutazione in unsigned int16 e lo estende a int32.

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

Valore del campo

Commenti

La tabella seguente elenca il formato di assembly Esadecimale e MSIL (Microsoft Intermediate Language), insieme a un breve riepilogo dei riferimenti:

Formato Formato assembly Descrizione
D1 conv.u2 Eseguire la conversione in int16, effettuando int32 il push nello stack.

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

  1. value viene inserito nello stack.

  2. value viene estratto dallo stack e viene tentata l'operazione di conversione.

  3. Se la conversione ha esito positivo, il valore risultante viene inserito nello stack.

Il conv.u2 codice operativo converte l'oggetto value nella parte superiore dello stack nel tipo specificato nel codice operativo e lascia il valore convertito nella parte superiore dello stack. I valori interi di meno di 4 byte vengono estesi a int32 quando vengono caricati nello stack di valutazione (a meno conv.i che non venga usato o conv.u , nel qual caso il risultato è anche native int). I valori a virgola mobile vengono convertiti nel F tipo .

La conversione da numeri a virgola mobile a valori interi tronca il numero verso zero. Quando si esegue la conversione da a float64 , float32la precisione può essere persa. Se value è troppo grande per adattarsi a , viene restituito un float32 (F)infinito positivo (se value è positivo) o infinito negativo (se value è negativo). Se si verifica la conversione di un tipo integer in un altro, i bit di ordine elevato vengono troncati. Se il risultato è minore di , int32il valore viene esteso per riempire lo slot.

Se si verifica un overflow che converte un tipo a virgola mobile in un numero intero, il valore restituito non è specificato.

Non vengono mai generate eccezioni quando si usa questo campo. Vedere Conv_Ovf_I2 e Conv_Ovf_I2_Un per istruzioni equivalenti che genereranno un'eccezione quando il tipo di risultato non può rappresentare correttamente il valore del risultato.

L'overload del metodo seguente Emit può usare il conv.u2 codice operativo:

Si applica a