Sdílet prostřednictvím


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í 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:

  1. Odkaz na objekt je nasdílený do zásobníku.

  2. Odkaz na objekt je vyskočil ze zásobníku; odkazovaný objekt je přetypován jako zadaný classobjekt .

  3. 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:

Platí pro