Partilhar via


OpCodes.Castclass Campo

Definição

Tenta converter um objeto passado por referência à classe 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 do campo

Atributos

Comentários

A tabela a seguir lista o formato de assembly hexadecimal e MSIL (Microsoft Intermediate Language) da instrução, juntamente com um breve resumo de referência:

Formatar Formato de assembly Descrição
74 <T> castclass class Converte um objeto em um novo objeto do tipo class.

O comportamento de transição da pilha, em ordem sequencial, é:

  1. Uma referência de objeto é enviada por push para a pilha.

  2. A referência de objeto é exibida da pilha; o objeto referenciado é convertido como o especificado class.

  3. Se tiver êxito, uma nova referência de objeto será enviada por push para a pilha.

A castclass instrução tenta converter a referência de objeto (tipo O) sobre a pilha em uma classe especificada. A nova classe é especificada por um token de metadados que indica a classe desejada. Se a classe do objeto na parte superior da pilha não implementar a nova classe (supondo que a nova classe seja uma interface) e não for uma classe derivada da nova classe, uma InvalidCastException será gerada. Se a referência de objeto for uma referência nula, castclass terá êxito e retornará o novo objeto como uma referência nula.

InvalidCastException será gerado se obj não puder ser convertido em classe.

TypeLoadException será gerado se a classe não puder ser encontrada. Isso normalmente é detectado quando uma instrução MSIL (Microsoft Intermediate Language) é convertida em código nativo em vez de em runtime.

Emit A seguinte sobrecarga de método pode usar o castclass opcode:

Aplica-se a