Sdílet prostřednictvím


OpCodes.Isinst Pole

Definice

Testuje, zda odkaz na objekt (typ O) je instancí konkrétní třídy.

public: static initonly System::Reflection::Emit::OpCode Isinst;
public static readonly System.Reflection.Emit.OpCode Isinst;
 staticval mutable Isinst : System.Reflection.Emit.OpCode
Public Shared ReadOnly Isinst As OpCode 

Hodnota pole

Poznámky

Následující tabulka uvádí šestnáctkový formát sestavení instrukce a formát sestavení MSIL (Microsoft Intermediate Language) spolu se stručným přehledem referencí:

Formát Formát sestavení Description
75 <T> Isinst class Testuje, zda je odkaz na objekt instancí class, která vrací nulový odkaz nebo instanci této třídy nebo rozhraní.

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

  1. Odkaz na objekt je vložen do zásobníku.

  2. Odkaz na objekt se vynoří ze zásobníku a otestuje se, jestli se jedná o instanci třídy předané v class.

  3. Výsledek (odkaz na objekt nebo nulový odkaz) je vložen do zásobníku.

Class je token metadat označující požadovanou třídu. Pokud třída objektu v horní části zásobníku implementuje class (pokud class je rozhraní) nebo je odvozenou třídou class (pokud class je normální třída), je přetypována na typ class a výsledek je vložen do zásobníku, stejně jako by Castclass byl volána. V opačném případě se do zásobníku vloží nulový odkaz. Pokud je samotný odkaz na objekt nulovým odkazem, isinst vrátí také nulový odkaz.

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

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

Platí pro