示例#1
0
 public override object Eval()
 {
     try
     {
         object[] argvals = new object[_args.Count];
         for (int i = 0; i < _args.Count; i++)
         {
             argvals[i] = _args[i].ArgExpr.Eval();
         }
         if (_method != null)
         {
             return(Reflector.InvokeMethod(_method, null, argvals));
         }
         return(Reflector.CallStaticMethod(_methodName, _typeArgs, _type, argvals));
     }
     catch (Compiler.CompilerException)
     {
         throw;
     }
     catch (Exception e)
     {
         throw new Compiler.CompilerException(_source, Compiler.GetLineFromSpanMap(_spanMap), Compiler.GetColumnFromSpanMap(_spanMap), null, Compiler.CompilerException.PhaseExecutionKeyword, e);
     }
 }