Condividi tramite


OpCodes.Isinst Campo

Definizione

Verifica se un riferimento a un oggetto di tipo O è un'istanza di una classe particolare.

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 

Valore del campo

Commenti

La tabella seguente elenca il formato dell'assembly esadecimale e Microsoft Intermediate Language (MSIL), insieme a un breve riepilogo di riferimento:

Formato Formato assembly Descrizione
75 <T> isinst class Verifica se un riferimento a un oggetto è un'istanza di class, che restituisce un riferimento Null o un'istanza di tale classe o interfaccia.

Il comportamento di transizione dello stack, in ordine sequenziale, è:

  1. Un riferimento all'oggetto viene eseguito il push nello stack.

  2. Il riferimento all'oggetto viene visualizzato dallo stack e testato per verificare se è un'istanza della classe passata in class.

  3. Il risultato (un riferimento a un oggetto o un riferimento Null) viene eseguito il push nello stack.

Class è un token di metadati che indica la classe desiderata. Se la classe dell'oggetto nella parte superiore dello stack implementa class (se è un'interfaccia) o è una classe derivata di class (se classclass è una classe regolare), viene eseguito il cast per digitare class e il risultato viene eseguito il push nello stack, esattamente come se Castclass fosse stato chiamato. In caso contrario, viene eseguito il push di un riferimento Null nello stack. Se il riferimento all'oggetto stesso è un riferimento Null, isinst restituisce in modo analogo un riferimento Null.

TypeLoadException viene generato se non è possibile trovare la classe. Questo viene in genere rilevato quando le istruzioni di Microsoft Intermediate Language (MSIL) vengono convertite in codice nativo anziché in fase di esecuzione.

L'overload del metodo seguente Emit può usare il isinst codice opcode:

Si applica a