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


OpCodes.Castclass Поле

Определение

Предпринимает попытку привести объект, передаваемый по ссылке, к указанному классу.

public: static initonly System::Reflection::Emit::OpCode Castclass;
public static readonly System.Reflection.Emit.OpCode Castclass;
[System.Runtime.InteropServices.ComVisible(true)]
public static readonly System.Reflection.Emit.OpCode Castclass;
 staticval mutable Castclass : System.Reflection.Emit.OpCode
[<System.Runtime.InteropServices.ComVisible(true)>]
 staticval mutable Castclass : System.Reflection.Emit.OpCode
Public Shared ReadOnly Castclass As OpCode 

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

Атрибуты

Комментарии

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

Формат Формат сборки Описание
74 <T> castclass class Приводит объект к новому объекту типа class.

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

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

  2. Ссылка на объект извлекается из стека; Объект, на который указывает ссылка, приводится как указанный class.

  3. В случае успешного выполнения в стек отправляется новая ссылка на объект.

Инструкция castclass пытается привести ссылку на объект (тип O) на вершине стека к указанному классу. Новый класс задается маркером метаданных, указывающим требуемый класс. Если класс объекта в верхней части стека не реализует новый класс (предполагается, что новый класс является интерфейсом) и не является производным от нового класса, то InvalidCastException создается исключение . Если ссылка на объект является пустой ссылкой, castclass выполняется успешно и возвращается новый объект в качестве пустой ссылки.

InvalidCastException возникает, если obj не может быть приведен к классу.

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

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

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