OpCodes.Initobj Campo
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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, é:
O endereço do tipo de valor a ser inicializado é enviado por push para a pilha.
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: