Compartir vía


OpCodes.Castclass Campo

Definición

Intenta convertir un objeto pasado por referencia en la clase especificada.

public: static initonly System::Reflection::Emit::OpCode Castclass;
public static readonly System.Reflection.Emit.OpCode Castclass;
[System.Runtime.InteropServices.ComVisible(true)]
public static readonly System.Reflection.Emit.OpCode Castclass;
 staticval mutable Castclass : System.Reflection.Emit.OpCode
[<System.Runtime.InteropServices.ComVisible(true)>]
 staticval mutable Castclass : System.Reflection.Emit.OpCode
Public Shared ReadOnly Castclass As OpCode 

Valor de campo

Atributos

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
74 <T> castclass class Convierte un objeto en un nuevo objeto de tipo class.

El comportamiento de transición de pila, en orden secuencial, es:

  1. Una referencia de objeto se inserta en la pila.

  2. La referencia de objeto se extrae de la pila; el objeto al que se hace referencia se convierte como el especificado class.

  3. Si se ejecuta correctamente, se inserta una nueva referencia de objeto en la pila.

La castclass instrucción intenta convertir la referencia de objeto (tipo O) sobre la pila a una clase especificada. La nueva clase se especifica mediante un token de metadatos que indica la clase deseada. Si la clase del objeto en la parte superior de la pila no implementa la nueva clase (suponiendo que la nueva clase es una interfaz) y no es una clase derivada de la nueva clase, se produce una InvalidCastException excepción . Si la referencia de objeto es una referencia nula, castclass se realiza correctamente y devuelve el nuevo objeto como una referencia nula.

InvalidCastException se produce si obj no se puede convertir a la clase .

TypeLoadException se produce si no se encuentra la clase . Esto suele detectarse cuando una instrucción de Lenguaje intermedio de Microsoft (MSIL) se convierte en código nativo en lugar de en tiempo de ejecución.

La sobrecarga del método siguiente Emit puede usar el castclass código de operación:

Se aplica a