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 , возвращающим пустую ссылку или экземпляр этого класса или интерфейса. |
Переходный режим стека в последовательном порядке:
Ссылка на объект передается в стек.
Ссылка на объект извлекается из стека и проверяется, является ли она экземпляром класса , переданного в
class
.Результат (ссылка на объект или пустая ссылка) передается в стек.
Class
— это маркер метаданных, указывающий требуемый класс. Если класс объекта в верхней части стека реализует class
(если class
является интерфейсом) или является производным классом class
(если class
является обычным классом), то он приводится к типу class
и результат передается в стек, точно так же, как будто Castclass был вызван. В противном случае в стек отправляется пустая ссылка. Если сама ссылка на объект является пустой ссылкой, то isinst
аналогично возвращает пустую ссылку.
TypeLoadException возникает, если не удается найти класс. Обычно это обнаруживается, когда инструкции msil преобразуются в машинный код, а не во время выполнения.
Следующая Emit перегрузка isinst
метода может использовать код операции: