Поделиться через


OpCodes.Isinst Поле

Определение

Проверяет, является ли ссылка на объект (с типом O) экземпляром определенного класса.

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 

Значение поля

Комментарии

В следующей таблице приведен шестнадцатеричный формат инструкции и формат сборки msil, а также краткий обзор:

Формат Формат сборки Описание
75 <T> isinst class Проверяет, является ли ссылка на объект экземпляром class, возвращающим пустую ссылку или экземпляр этого класса или интерфейса.

Переходный режим стека в последовательном порядке:

  1. Ссылка на объект передается в стек.

  2. Ссылка на объект извлекается из стека и проверяется, является ли она экземпляром класса , переданного в class.

  3. Результат (ссылка на объект или пустая ссылка) передается в стек.

Class — это маркер метаданных, указывающий требуемый класс. Если класс объекта в верхней части стека реализует class (если class является интерфейсом) или является производным классом class (если class является обычным классом), то он приводится к типу class и результат передается в стек, точно так же, как будто Castclass был вызван. В противном случае в стек отправляется пустая ссылка. Если сама ссылка на объект является пустой ссылкой, то isinst аналогично возвращает пустую ссылку.

TypeLoadException возникает, если не удается найти класс. Обычно это обнаруживается, когда инструкции msil преобразуются в машинный код, а не во время выполнения.

Следующая Emit перегрузка isinst метода может использовать код операции:

Применяется к