OpCodes.Isinst Fält
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
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:
En objektreferens skickas till stacken.
Objektreferensen poppas från stacken och testas för att se om det är en instans av klassen som skickades i
class.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: