OpCodes.Castclass Mező
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
A megadott osztályra mutató hivatkozással átadott objektumot próbál meg leadni.
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
Mező értéke
- Attribútumok
Megjegyzések
Az alábbi táblázat felsorolja az utasítás hexadecimális és Microsoft köztes nyelv (MSIL) szerelvényformátumát, valamint egy rövid összefoglalást:
| Format | Szerelvény formátuma | Leírás |
|---|---|---|
74 <T> |
castclass class |
Objektumot egy új típusú classobjektumra vet. |
A verem átmeneti viselkedése szekvenciális sorrendben a következő:
A rendszer egy objektumhivatkozást küld a verembe.
Az objektumhivatkozás a veremből származik; a hivatkozott objektum a megadott
classmódon lesz elosztva.Ha sikeres, a rendszer egy új objektumhivatkozást küld a verembe.
Az castclass utasítás megkísérli a verem tetején lévő objektumhivatkozást (típus O) egy adott osztályba leadni. Az új osztályt a kívánt osztályt jelző metaadat-jogkivonat adja meg. Ha a verem tetején lévő objektum osztálya nem valósítja meg az új osztályt (feltéve, hogy az új osztály egy interfész), és nem az új osztály származtatott osztálya, akkor a rendszer eldobja InvalidCastException az osztályt. Ha az objektumhivatkozás null értékű hivatkozás, akkor az új objektum sikeres lesz, castclass és nullhivatkozásként adja vissza.
InvalidCastException akkor kerül be, ha az obj nem vethető be az osztályba.
TypeLoadException akkor lesz eldobva, ha az osztály nem található. Ezt általában akkor észleli a rendszer, ha egy Microsoft köztes nyelv (MSIL) utasítást nem futtatókörnyezetben, hanem natív kódra konvertál.
A következő Emit metódus túlterhelése használhatja az castclass opcode-ot: