public object Eval() { Object[] argvals = new Object[_args.Count]; for (int i = 0; i < _args.Count; i++) { argvals[i] = _args[i].ArgExpr.Eval(); } if (_ctor != null) { return(_ctor.Invoke(Reflector.BoxArgs(_ctor.GetParameters(), argvals))); // TODO: Deal with ByRef parameters } return(Reflector.InvokeConstructor(_type, argvals)); }