OpCodes.Castclass Feld

Definition

Wandelt ein als Verweis übergebenes Objekt in die angegebene Klasse um.

public: static initonly System::Reflection::Emit::OpCode Castclass;
public static readonly System.Reflection.Emit.OpCode Castclass;
[System.Runtime.InteropServices.ComVisible(true)]
public static readonly System.Reflection.Emit.OpCode Castclass;
 staticval mutable Castclass : System.Reflection.Emit.OpCode
[<System.Runtime.InteropServices.ComVisible(true)>]
 staticval mutable Castclass : System.Reflection.Emit.OpCode
Public Shared ReadOnly Castclass As OpCode 

Feldwert

OpCode
Attribute

Hinweise

In der folgenden Tabelle sind das Hexadezimal- und das MSIL-Assemblyformat der Anweisung sowie eine kurze Referenzzusammenfassung aufgeführt:

Format Assemblyformat BESCHREIBUNG
74 < T > Castclass class Wandelt ein Objekt in ein neues Objekt des Typs classum.

Das Stapelübergangsverhalten in sequenzieller Reihenfolge lautet:

  1. Ein Objektverweis wird auf den Stapel verschoben.

  2. Der Objektverweis wird aus dem Stapel eingetaucht; das referenzierte Objekt wird als angegebenes classObjekt gecastt.

  3. Bei erfolgreicher Ausführung wird ein neuer Objektverweis auf den Stapel verschoben.

Die castclass Anweisung versucht, den Objektverweis (Typ O) auf dem Stapel in eine angegebene Klasse zu umwandeln. Die neue Klasse wird durch ein Metadatentoken angegeben, das die gewünschte Klasse angibt. Wenn die Klasse des Objekts oben im Stapel die neue Klasse nicht implementiert (vorausgesetzt, die neue Klasse ist eine Schnittstelle) und keine abgeleitete Klasse der neuen Klasse ist, wird ein Auslösen ausgelöst InvalidCastException . Wenn es sich bei dem Objektverweis um einen Nullverweis handelt, castclass wird das neue Objekt als NULL-Verweis zurückgegeben.

InvalidCastException wird ausgelöst, wenn obj nicht in klasse umwandeln kann.

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

Die folgende Emit Methodenüberladung kann den castclass Opcode verwenden:

Gilt für