Udostępnij za pośrednictwem


OpCodes.Isinst Pole

Definicja

Sprawdza, czy odwołanie do obiektu (typ O) jest wystąpieniem określonej klasy.

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 

Wartość pola

Uwagi

W poniższej tabeli wymieniono format zestawu szesnastkowy instrukcji i microsoft intermediate language (MSIL) wraz z krótkim podsumowaniem referencyjnym:

Format Format zestawu Opis
75 <T> isinst class Sprawdza, czy odwołanie do obiektu jest wystąpieniem classklasy , zwracając odwołanie o wartości null lub wystąpienie tej klasy lub interfejsu.

Zachowanie przejściowe stosu w kolejności sekwencyjnej jest następujące:

  1. Odwołanie do obiektu jest wypychane do stosu.

  2. Odwołanie do obiektu jest zwinięte ze stosu i przetestowane, aby sprawdzić, czy jest to wystąpienie klasy przekazanej w classelemencie .

  3. Wynik (odwołanie do obiektu lub odwołanie o wartości null) jest wypychany do stosu.

Class to token metadanych wskazujący żądaną klasę. Jeśli klasa obiektu w górnej części stosu implementuje class (jeśli class jest interfejsem) lub jest klasą pochodną (jeśli class jest zwykłą klasą class ), jest rzutowana do typuclass, a wynik jest wypychany na stos, dokładnie tak, jakby Castclass został wywołany. W przeciwnym razie na stosie jest wypychane odwołanie o wartości null. Jeśli odwołanie do obiektu jest odwołaniem o wartości null, isinst zwraca również odwołanie o wartości null.

TypeLoadException jest zgłaszany, jeśli nie można odnaleźć klasy. Zwykle jest to wykrywane, gdy instrukcje języka Microsoft Intermediate Language (MSIL) są konwertowane na kod natywny, a nie w czasie wykonywania.

Emit Następujące przeciążenie metody może używać isinst kodu opcode:

Dotyczy