Compartilhar via


OpCodes.Initobj Campo

Definição

Inicializa cada campo do tipo de valor em um endereço especificado para 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:

Formato 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 é retirado da pilha; o tipo de valor no endereço especificado é inicializado como tipo typeTok.

A instrução initobj 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 for chamado, a instância estará pronta para que um método de construtor seja chamado. Se typeTok for um tipo de referência, essa instrução terá o mesmo efeito que ldnull seguida por stind.ref.

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

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

Aplica-se a