OpCodes.Unbox 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í.
Convierte la representación de un tipo de valor al que se le ha aplicado la conversión boxing en la forma que tendría al aplicarle la conversión unboxing.
public: static initonly System::Reflection::Emit::OpCode Unbox;
public static readonly System.Reflection.Emit.OpCode Unbox;
staticval mutable Unbox : System.Reflection.Emit.OpCode
Public Shared ReadOnly Unbox As OpCode
Valor de campo
Comentarios
En la tabla siguiente se muestra el formato de ensamblado hexadecimal y lenguaje intermedio de Microsoft (MSIL), junto con un breve resumen de referencia:
Formato | Formato de ensamblado | Descripción |
---|---|---|
79 <T > |
Unbox valType |
Extrae los datos de tipo de valor de obj , su representación boxed. |
El comportamiento de transición de pila, en orden secuencial, es:
Una referencia de objeto se inserta en la pila.
La referencia de objeto se extrae de la pila y se quita de la caja a un puntero de tipo de valor.
El puntero de tipo de valor se inserta en la pila.
Un tipo de valor tiene dos representaciones independientes dentro de Common Language Infrastructure (CLI):
Formulario 'raw' usado cuando un tipo de valor está incrustado dentro de otro objeto.
Formulario "boxed", donde los datos del tipo de valor se encapsulan (boxed) en un objeto para que pueda existir como una entidad independiente.
La unbox
instrucción convierte la referencia de objeto (tipo O
), la representación boxed de un tipo de valor, en un puntero de tipo de valor (un puntero administrado, tipo &
), su formulario sin conversión. El tipo de valor proporcionado (valType
) es un token de metadatos que indica el tipo de tipo de valor contenido en el objeto boxed.
A diferencia Boxde , que es necesario para realizar una copia de un tipo de valor para su uso en el objeto , unbox
no es necesario copiar el tipo de valor del objeto . Normalmente, simplemente calcula la dirección del tipo de valor que ya está presente dentro del objeto boxed.
InvalidCastException se produce si el objeto no está boxeado como valType
.
NullReferenceException se produce si la referencia de objeto es una referencia nula.
TypeLoadException se produce si no se encuentra el tipo valType
de valor. Esto suele detectarse cuando las instrucciones del lenguaje intermedio de Microsoft (MSIL) se convierten en código nativo, en lugar de en tiempo de ejecución.
La sobrecarga del método siguiente Emit puede usar el unbox
código de operación: