OpCodes.Isinst Fält

Definition

Testar om en objektreferens (typ O) är en instans av en viss klass.

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 

Fältvärde

Kommentarer

I följande tabell visas instruktionens sammansättningsformat för hexadecimalt och Microsoft mellanliggande språk (MSIL), tillsammans med en kort referenssammanfattning:

Format Sammansättningsformat Description
75 <T> isinst class Testar om en objektreferens är en instans av class, som returnerar antingen en null-referens eller en instans av den klassen eller gränssnittet.

Stackens övergångsbeteende i sekventiell ordning är:

  1. En objektreferens skickas till stacken.

  2. Objektreferensen poppas från stacken och testas för att se om det är en instans av klassen som skickades i class.

  3. Resultatet (antingen en objektreferens eller en null-referens) skickas till stacken.

Class är en metadatatoken som anger önskad klass. Om klassen för objektet överst i stacken implementerar class (om class är ett gränssnitt) eller är en härledd klass av class (om class är en vanlig klass) så är den gjuten att skriva class och resultatet skickas på stacken, precis som om Castclass det hade anropats. Annars pushas en null-referens på stacken. Om själva objektreferensen är en null-referens returnerar samma isinst sak en null-referens.

TypeLoadException genereras om det inte går att hitta klassen. Detta identifieras vanligtvis när instruktionerna för Microsoft mellanliggande språk (MSIL) konverteras till intern kod i stället för vid körning.

Följande Emit metodöverlagring kan använda isinst opcode:

Gäller för