OpCodes.Castclass 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.
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 class um. |
Das Übergangsverhalten des Stapels in sequenzieller Reihenfolge lautet:
Ein Objektverweis wird auf den Stapel gepusht.
Der Objektverweis wird aus dem Stapel geploppt. Das Objekt, auf das verwiesen wird, wird in das angegebene
class
umgewandelt.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: