Mono.CSharp.Evaluator.Evaluate C# (CSharp) Method

Evaluate() public method

Evaluates and expression or statement and returns the result.
Evaluates the input string as a C# expression or statement and returns the value. This method will throw an exception if there is a syntax error, of if the provided input is not an expression but a statement.
public Evaluate ( string input ) : object
input string
return object
        public object Evaluate(string input)
        {
            object result;
            bool result_set;

            string r = Evaluate (input, out result, out result_set);

            if (r != null)
                throw new ArgumentException ("Syntax error on input: partial input");

            if (result_set == false)
                throw new ArgumentException ("The expression did not set a result");

            return result;
        }

Same methods

Evaluator::Evaluate ( string input, object &result, bool &result_set ) : string

Usage Example

Example #1
0
        public Task <bool> EvaluateExpression(string expression, string code, EvalResult result)
        {
            EnsureConfigured();
            try
            {
                object retResult;
                bool   hasResult;

                printer.Reset();
                if (!String.IsNullOrEmpty(code))
                {
                    var ret = eval.Evaluate(code, out retResult, out hasResult);
                }
                result.Result = eval.Evaluate(expression);
                return(Task.FromResult(true));
            }
            catch (Exception ex)
            {
                Log.Error($"Error creating a new instance of {expression}");
                if (printer.Messages.Count != 0)
                {
                    result.Messages = printer.Messages.ToArray();
                }
                else
                {
                    result.Messages = new EvalMessage[] { new EvalMessage("error", ex.ToString()) };
                }
                if (!result.HasResult && result.Messages.Length == 0)
                {
                    result.Messages = new EvalMessage[] { new EvalMessage("error", "Internal Error") };
                }
                eval = null;
            }
            return(Task.FromResult(false));
        }
All Usage Examples Of Mono.CSharp.Evaluator::Evaluate