OpCodes.Castclass-Feld
Wandelt ein als Verweis übergebenes Objekt in die angegebene Klasse um.
Namespace: System.Reflection.Emit
Assembly: mscorlib (in mscorlib.dll)
Syntax
'Declaration
<ComVisibleAttribute(True)> _
Public Shared ReadOnly Castclass As OpCode
'Usage
Dim value As OpCode
value = OpCodes.Castclass
[ComVisibleAttribute(true)]
public static readonly OpCode Castclass
[ComVisibleAttribute(true)]
public:
static initonly OpCode Castclass
/** @attribute ComVisibleAttribute(true) */
public static final OpCode Castclass
ComVisibleAttribute(true)
public static final var Castclass : 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 |
---|---|---|
74 < T > |
castclass class |
Wandelt ein Objekt in ein neues Objekt vom Typ class um. |
Im Stapel laufen die folgenden Aktionen in der angegebenen Reihenfolge ab:
Ein Objektverweis wird auf dem Stapel abgelegt.
Der Objektverweis wird vom Stapel geholt, und das Objekt, auf das verwiesen wird, wird in die angegebene class umgewandelt.
Wenn dies gelingt, wird ein neuer Objektverweis auf dem Stapel abgelegt.
Mit der castclass-Anweisung wird der Objektverweis (vom Typ O) an oberster Position des Stapels in eine angegebene Klasse umgewandelt. Die neue Klasse wird durch ein Metadatentoken angegeben, das auf die gewünschte Klasse verweist. Eine InvalidCastException wird ausgelöst, wenn die Klasse des Objekts, das sich an oberster Position im Stapel befindet, die neue Klasse nicht implementiert (sofern die neue Klasse eine Schnittstelle ist) und nicht von der neuen Klasse abgeleitet ist. Wenn es sich bei dem Objektverweis um einen NULL-Verweis handelt, ist castclass erfolgreich und gibt das neue Objekt als NULL-Verweis zurück.
InvalidCastException wird ausgelöst, wenn obj nicht in eine Klasse umgewandelt werden kann.
TypeLoadException wird ausgelöst, wenn die Klasse nicht gefunden werden kann. Dies wird normalerweise nicht zur Laufzeit erkannt, sondern wenn MSIL (Microsoft Intermediate Language) in systemeigenen Code konvertiert wird.
Die folgende Überladung der Emit-Methode verwendet den castclass-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