private DeclareLocal ( |
||
localType | ||
리턴 | CodeEmitterLocal |
internal CodeEmitterLocal DeclareLocal(Type localType)
{
CodeEmitterLocal local = new CodeEmitterLocal(localType);
EmitPseudoOpCode(CodeType.DeclareLocal, local);
return local;
}
internal override void Emit(CodeEmitter ilgen) { base.Emit(ilgen); // unbox leaves a pointer to the value of the stack (instead of the value) // so we have to copy the value into a local variable and load the address // of the local onto the stack LocalBuilder local = ilgen.DeclareLocal(Type); ilgen.Emit(OpCodes.Stloc, local); ilgen.Emit(OpCodes.Ldloca, local); }