OpCodes.Isinst 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í.
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:
Odkaz na objekt je vložen do zásobníku.
Odkaz na objekt se vynoří ze zásobníku a otestuje se, jestli se jedná o instanci třídy předané v
class
.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: