OpCodes.Isinst Campo

Definizione

Verifica se un riferimento a un oggetto (tipo O) è un'istanza di una determinata classe.

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 di assembly MSIL (Intermediate Language) esadecimale e Microsoft istruzione, insieme a un breve riepilogo di riferimento:

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

Il comportamento transitorio dello stack, in ordine sequenziale, è:

  1. Viene eseguito il push di un riferimento all'oggetto nello stack.

  2. Il riferimento all'oggetto viene estratto dallo stack e testato per verificare se si tratta di un'istanza della classe passata in class.

  3. Il risultato (un riferimento a un oggetto o un riferimento Null) viene inserito 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 class è un'interfaccia) o è una classe derivata di class (se class è una classe regolare), viene eseguito il cast al tipo class e il risultato viene inserito 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, restituisce isinst analogamente un riferimento Null.

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

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

Si applica a