Partilhar via


OpCodes.Isinst Campo

Definição

Testa se uma referência de objeto (tipo O) é uma instância de uma classe específica.

public: static initonly System::Reflection::Emit::OpCode Isinst;
public static readonly System.Reflection.Emit.OpCode Isinst;
 staticval mutable Isinst : System.Reflection.Emit.OpCode
Public Shared ReadOnly Isinst As OpCode 

Valor do campo

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
75 <T> isinst class Testa se uma referência de objeto é uma instância do class, retornando uma referência nula ou uma instância dessa classe ou interface.

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 e testada para ver se é uma instância da classe passada em class.

  3. O resultado (uma referência de objeto ou uma referência nula) é enviado por push para a pilha.

Class é um token de metadados que indica a classe desejada. Se a classe do objeto na parte superior da pilha implementar class (se class for uma interface) ou for uma classe derivada de class (se class for uma classe regular), ela será convertida no tipo class e o resultado será enviado por push na pilha, exatamente como se Castclass tivesse sido chamado. Caso contrário, uma referência nula será enviada por push na pilha. Se a referência de objeto em si for uma referência nula, a isinst mesma retornará uma referência nula.

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

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

Aplica-se a