OpCodes.Initobj Campo

Definição

Inicializa cada campo do tipo de valor em um endereço especificado como uma referência nula ou 0 do tipo primitivo apropriado.

public: static initonly System::Reflection::Emit::OpCode Initobj;
public static readonly System.Reflection.Emit.OpCode Initobj;
 staticval mutable Initobj : System.Reflection.Emit.OpCode
Public Shared ReadOnly Initobj As OpCode 

Valor do campo

Comentários

A tabela a seguir lista o formato de assembly hexadecimal e MSIL (Microsoft Intermediate Language) da instrução, juntamente com um breve resumo de referência:

Formatar Formato de assembly Descrição
FE 15 <T> initobj typeTok Inicializa um tipo de valor.

O comportamento de transição da pilha, em ordem sequencial, é:

  1. O endereço do tipo de valor a ser inicializado é enviado por push para a pilha.

  2. O endereço é exibido da pilha; o tipo de valor no endereço especificado é inicializado como o tipo typeTok.

A initobj instrução inicializa cada campo do tipo de valor especificado pelo endereço enviado por push (do tipo native int, &ou *) para uma referência nula ou um 0 do tipo primitivo apropriado. Depois que esse método é chamado, a instância está pronta para um método de construtor a ser chamado. Se typeTok for um tipo de referência, essa instrução terá o mesmo efeito ldnull que seguido por stind.ref.

Ao contrário Newobjde , initobj não chama o método de construtor. Initobj destina-se à inicialização de tipos de valor, enquanto newobj é usado para alocar e inicializar objetos.

A sobrecarga do método Emit a seguir pode usar o initobj opcode:

Aplica-se a