OpCodes.Castclass Pole

Definice

Pokusí se přetypovat objekt předaný odkazem na zadanou třídu.

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 

Hodnota pole

Atributy

Poznámky

Následující tabulka uvádí šestnáctkový formát sestavení jazyka MSIL (Intermediate Language) a Microsoft s stručným přehledem referenčních informací:

Formát Formát sestavení Description
74 <T> castclass class Přetypuje objekt na nový objekt typu class.

Přechodné chování zásobníku v sekvenčním pořadí je:

  1. Odkaz na objekt se nasdílí do zásobníku.

  2. Odkaz na objekt je vynechán ze zásobníku; odkazovaný objekt je přetypován jako zadaný class.

  3. V případě úspěchu se do zásobníku vloží nový odkaz na objekt.

Instrukce castclass se pokusí přetypovat odkaz na objekt (typ O) na vrchol zásobníku na zadanou třídu. Nová třída je určena tokenem metadat označující požadovanou třídu. Pokud třída objektu v horní části zásobníku neimplementuje novou třídu (za předpokladu, že nová třída je rozhraní) a není odvozenou třídou nové třídy, je InvalidCastException vyvolán. Pokud je odkazem na objekt nulový odkaz, castclass bude úspěšný a vrátí nový objekt jako odkaz null.

InvalidCastException je vyvolán, pokud obj nelze přetypovat na třídu.

TypeLoadException je vyvolán, pokud nelze najít třídu. To se obvykle zjistí, když se instrukce jazyka MSIL (Microsoft Intermediate Language) místo za běhu převede na nativní kód.

Emit Následující přetížení metody může použít castclass opcode:

Platí pro