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

Attribute

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
74 <T> castclass class Wandelt ein -Objekt in ein neues Objekt vom Typ classum.

Das Übergangsverhalten des Stapels in sequenzieller Reihenfolge lautet:

  1. Ein Objektverweis wird auf den Stapel gepusht.

  2. Der Objektverweis wird aus dem Stapel geploppt. Das Objekt, auf das verwiesen wird, wird in das angegebene classumgewandelt.

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

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 am Anfang des Stapels die neue Klasse nicht implementiert (vorausgesetzt, die neue Klasse ist eine Schnittstelle) und keine abgeleitete Klasse der neuen Klasse ist, wird eine InvalidCastException ausgelöst. Wenn der Objektverweis ein NULL-Verweis ist, castclass ist erfolgreich und gibt das neue Objekt als NULL-Verweis zurück.

InvalidCastException wird ausgelöst, wenn obj nicht in die -Klasse umgewandelt werden 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, sondern in nativen Code konvertiert wird.

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

Gilt für: