OpCodes.Ldind_I Campo
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Carga indirectamente un valor de tipo native int
como native int
en la pila de evaluación.
public: static initonly System::Reflection::Emit::OpCode Ldind_I;
public static readonly System.Reflection.Emit.OpCode Ldind_I;
staticval mutable Ldind_I : System.Reflection.Emit.OpCode
Public Shared ReadOnly Ldind_I As OpCode
Valor de campo
Comentarios
En la tabla siguiente se muestra el formato de ensamblado hexadecimal y del lenguaje intermedio de Microsoft (MSIL), junto con un breve resumen de referencia:
Formato | Formato de ensamblado | Descripción |
---|---|---|
4D | ldind.i | Carga el native int valor en la dirección addr en la pila como .native int |
El comportamiento transitorio de la pila, en orden secuencial, es:
Se inserta una dirección en la pila.
La dirección se extrae de la pila; se captura el valor ubicado en la dirección.
El valor capturado se inserta en la pila.
La ldind.i
instrucción carga indirectamente un native int
valor de la dirección especificada (de tipo native int
, &
o *) en la pila como .native int
Todas las ldind
instrucciones son accesos directos para una Ldobj instrucción que especifica la clase de valor integrada correspondiente.
Tenga en cuenta que los valores enteros de menos de 4 bytes se extienden a int32
(no native int
) cuando se cargan en la pila de evaluación. Los valores de punto flotante se convierten en F
tipo cuando se cargan en la pila de evaluación.
El lenguaje intermedio de Microsoft (MSIL) tiene el formato correcto para garantizar que las ldind
instrucciones se usen de forma coherente con el tipo del puntero.
La dirección insertada inicialmente en la pila debe alinearse con el tamaño natural de los objetos de la máquina o NullReferenceException puede producirse (consulte la Unaligned instrucción de prefijo para las medidas preventivas). Los resultados de todas las instrucciones de MSIL que devuelven direcciones (por ejemplo, Ldloca y Ldarga) se alinean de forma segura. Para los tipos de datos mayores de 1 byte, el orden de bytes depende de la CPU de destino. Es posible que el código que dependa del orden de bytes no se ejecute en todas las plataformas.
NullReferenceException se puede producir si se detecta una dirección no válida.
La sobrecarga del método siguiente Emit puede usar el ldind.i
código de operación: