Freigeben über


OpCodes.Isinst-Feld

Überprüft, ob ein Objektverweis (Typ O) eine Instanz einer bestimmten Klasse ist.

Namespace: System.Reflection.Emit
Assembly: mscorlib (in mscorlib.dll)

Syntax

'Declaration
Public Shared ReadOnly Isinst As OpCode
'Usage
Dim value As OpCode

value = OpCodes.Isinst
public static readonly OpCode Isinst
public:
static initonly OpCode Isinst
public static final OpCode Isinst
public static final var Isinst : OpCode

Hinweise

In der folgenden Tabelle werden das hexadezimale und das Assemblyformat der MSIL (Microsoft Intermediate Language) jeweils mit einer Kurzreferenz aufgeführt:

Format

Assemblyformat

Beschreibung

75 < T >

isinst class

Überprüft, ob ein Objektverweis eine Instanz von class ist, und gibt entweder einen NULL-Verweis oder eine Instanz der Klasse oder der Schnittstelle zurück.

Im Stapel laufen die folgenden Aktionen in der angegebenen Reihenfolge ab:

  1. Ein Objektverweis wird auf dem Stapel abgelegt.

  2. Der Objektverweis wird vom Stapel geholt und daraufhin überprüft, ob er eine Instanz der Klasse ist, die in class übergeben wurde.

  3. Das Ergebnis (entweder ein Objektverweis oder eine NULL-Verweis) wird auf dem Stapel abgelegt.

Class ist ein Metadatentoken, das die gewünschte Klasse angibt. Wenn die Klasse des Objekts an der oberster Position des Stapels class implementiert (sofern class eine Schnittstelle ist) oder eine abgeleitete Klasse von class ist (sofern class eine normale Klasse ist), wird sie in den Typ class umgewandelt, und das Ergebnis wird auf den Stapel gelegt. Dies entspricht dem Aufruf von Castclass. Andernfalls wird ein NULL-Verweis auf dem Stapel abgelegt. Wenn der Objektverweis selbst ein NULL-Verweis ist, gibt auch isinst einen NULL-Verweis zurück.

TypeLoadException wird ausgelöst, wenn die Klasse nicht gefunden werden kann. Dies wird normalerweise nicht zur Laufzeit erkannt, sondern wenn MSIL-Anweisungen (Microsoft Intermediate Language) in systemeigenen Code konvertiert werden.

Die folgende Überladung der Emit-Methode verwendet den isinst-Opcode:

  • ILGenerator.Emit(OpCode, Type)

Plattformen

Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

Versionsinformationen

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0

Siehe auch

Referenz

OpCodes-Klasse
OpCodes-Member
System.Reflection.Emit-Namespace