public void LoadArg(MethodArgumentVariableExpression expression)
        {
            switch (expression.Index)
            {
            case 0:
                Emit(OpCodes.Ldarg_0);
                break;

            case 1:
                Emit(OpCodes.Ldarg_1);
                break;

            case 2:
                Emit(OpCodes.Ldarg_2);
                break;

            case 3:
                Emit(OpCodes.Ldarg_3);
                break;

            default:
                _logger.Log($"ldarg.s {expression.Name}");
                _ilGenerator.Emit(OpCodes.Ldarg_S, expression.Name);
                break;
            }
        }
 public void SetArg(MethodArgumentVariableExpression argumentVariableExpression)
 {
     _ilGenerator.Emit(OpCodes.Starg_S, (byte)argumentVariableExpression.Index);
 }
 public void LoadArgByReference(MethodArgumentVariableExpression expression)
 {
     _logger.Log($"ldarga.s {expression.Name}");
     _ilGenerator.Emit(OpCodes.Ldarga_S, (byte)expression.Index);
 }