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 Microsoft linguagem intermediária (MSIL) da instrução, juntamente com um breve resumo de referência:

Formato Formato de assembly Description
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) em cima da 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 será bem-sucedida e retornará o novo objeto como uma referência nula.

InvalidCastException é gerado se obj não pode ser convertido em classe.

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

A sobrecarga do método Emit a seguir pode usar o castclass opcode:

Aplica-se a