OpCodes.Isinst Feld
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Überprüft, ob ein Objektverweis (Typ O
) eine Instanz einer bestimmten Klasse ist.
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
Feldwert
Hinweise
In der folgenden Tabelle sind das Hexadezimal- und MSIL-Assemblyformat (Microsoft Intermediate Language) der Anweisung sowie eine kurze Referenzzusammenfassung aufgeführt:
Format | Assemblyformat | BESCHREIBUNG |
---|---|---|
75 <T > |
isinst class |
Testet, ob ein Objektverweis ein instance von class ist, und gibt entweder einen NULL-Verweis oder einen instance dieser Klasse oder Schnittstelle zurück. |
Das Stapelübergangsverhalten in sequenzieller Reihenfolge lautet:
Ein Objektverweis wird auf den Stapel gepusht.
Der Objektverweis wird aus dem Stapel geknallt und getestet, um festzustellen, ob es sich um einen instance der in
class
übergebenen Klasse handelt.Das Ergebnis (entweder ein Objektverweis oder ein NULL-Verweis) wird auf den Stapel gepusht.
Class
ist ein Metadatentoken, das die gewünschte Klasse angibt. Wenn die Klasse des Objekts am Anfang des Stapels implementiert (wenn class
es sich um eine Schnittstelle handelt) oder eine abgeleitete class
Klasse von class
ist (wenn class
es sich um eine reguläre Klasse handelt), wird sie in den Typ class
umgewandelt, und das Ergebnis wird auf den Stapel gepusht, genau so, als wäre Castclass es aufgerufen worden. Andernfalls wird ein NULL-Verweis auf den Stapel gepusht. Wenn der Objektverweis selbst ein NULL-Verweis ist, isinst
wird ebenfalls ein NULL-Verweis zurückgegeben.
TypeLoadException wird ausgelöst, wenn die Klasse nicht gefunden werden kann. Dies wird in der Regel erkannt, wenn die MSIL-Anweisungen (Microsoft Intermediate Language) nicht zur Laufzeit, sondern in nativen Code konvertiert werden.
Die folgende Emit Methodenüberladung kann den isinst
opcode verwenden: