OpCodes.Isinst Campo

Definição

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

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 de Campo

Observações

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

Formato Formato de Montagem Descrição
75 <T> isinst class Testa se uma referência de objeto é uma instância de class, retornando uma referência nula ou uma instância dessa classe ou interface.

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

  1. Uma referência de objeto é empurrada para a pilha.

  2. A referência do objeto é extraída da pilha e testada para verificar se é uma instância da classe passada em class.

  3. O resultado (seja uma referência de objeto ou uma referência nula) é empurrado para a pilha.

Class é um token de metadados que indica a classe desejada. Se a classe do objeto no topo da pilha implementar class (se class for uma interface) ou for uma classe derivada de class (se class for uma classe regular), então ela é lançada para o tipo class e o resultado é empurrado para a pilha, exatamente como Castclass se tivesse sido chamado. Caso contrário, uma referência nula é empurrada para a pilha. Se a própria referência ao objeto for uma referência nula, então isinst também devolve uma referência nula.

TypeLoadException é lançado se a classe não for encontrada. Isto é tipicamente detetado quando as instruções da Microsoft Intermediate Language (MSIL) são convertidas para código nativo em vez de em tempo de execução.

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

Aplica-se a