OpCodes.Castclass Pole
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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í hexadecimální formát sestavení instrukce a formát sestavení MSIL (Microsoft Intermediate Language) spolu se stručným souhrnem 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:
Odkaz na objekt je nasdílený do zásobníku.
Odkaz na objekt je vyskočil ze zásobníku; odkazovaný objekt je přetypován jako zadaný
class
objekt .V případě úspěchu se do zásobníku nasdílí nový odkaz na objekt.
Instrukce castclass
se pokusí přetypovat odkaz na objekt (typ O
) na zásobníku na zadanou třídu. Nová třída je určena tokenem metadat, který označuje 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 má odkaz na objekt hodnotu null, castclass
bude úspěšný a vrátí nový objekt jako odkaz s hodnotou null.
InvalidCastException je vyvolán, pokud obj nelze přetypovat do třídy.
TypeLoadException je vyvolán, pokud třídu nelze najít. To se obvykle zjistí při převodu instrukce jazyka MSIL (Microsoft Intermediate Language) na nativní kód místo za běhu.
Následující Emit přetížení metody může použít castclass
opcode: