Class Expression
- Namespace
- NCalc
- Assembly
- NCalc.dll
This class represents a mathematical or logical expression that can be evaluated. It supports caching, custom parameter and function evaluation, and options for handling null parameters and iterating over parameter collections. The class manages the parsing, validation, and evaluation of expressions, and provides mechanisms for error detection and reporting.
public class Expression : ExpressionBase<ExpressionContext>
- Inheritance
-
Expression
- Inherited Members
Constructors
Expression(LogicalExpression)
public Expression(LogicalExpression logicalExpression)
Parameters
logicalExpressionLogicalExpression
Expression(LogicalExpression, ExpressionContext?)
public Expression(LogicalExpression logicalExpression, ExpressionContext? context = null)
Parameters
logicalExpressionLogicalExpressioncontextExpressionContext
Expression(LogicalExpression, ExpressionContext, ILogicalExpressionFactory, ILogicalExpressionCache, IEvaluationVisitorFactory)
public Expression(LogicalExpression logicalExpression, ExpressionContext context, ILogicalExpressionFactory factory, ILogicalExpressionCache cache, IEvaluationVisitorFactory evaluationVisitorFactory)
Parameters
logicalExpressionLogicalExpressioncontextExpressionContextfactoryILogicalExpressionFactorycacheILogicalExpressionCacheevaluationVisitorFactoryIEvaluationVisitorFactory
Expression(LogicalExpression, ExpressionOptions, CultureInfo?)
public Expression(LogicalExpression logicalExpression, ExpressionOptions options = ExpressionOptions.None, CultureInfo? cultureInfo = null)
Parameters
logicalExpressionLogicalExpressionoptionsExpressionOptionscultureInfoCultureInfo
Expression(string?)
public Expression(string? expression)
Parameters
expressionstring
Expression(string?, ExpressionContext?)
public Expression(string? expression, ExpressionContext? context = null)
Parameters
expressionstringcontextExpressionContext
Expression(string, ExpressionContext, ILogicalExpressionFactory, ILogicalExpressionCache, IEvaluationVisitorFactory)
public Expression(string expression, ExpressionContext context, ILogicalExpressionFactory factory, ILogicalExpressionCache cache, IEvaluationVisitorFactory evaluationVisitorFactory)
Parameters
expressionstringcontextExpressionContextfactoryILogicalExpressionFactorycacheILogicalExpressionCacheevaluationVisitorFactoryIEvaluationVisitorFactory
Expression(string?, ExpressionOptions, CultureInfo?)
public Expression(string? expression, ExpressionOptions options = ExpressionOptions.None, CultureInfo? cultureInfo = null)
Parameters
expressionstringoptionsExpressionOptionscultureInfoCultureInfo
Properties
DynamicParameters
public IDictionary<string, ExpressionParameter> DynamicParameters { get; set; }
Property Value
EvaluationVisitorFactory
protected IEvaluationVisitorFactory EvaluationVisitorFactory { get; }
Property Value
Functions
public IDictionary<string, ExpressionFunction> Functions { get; set; }
Property Value
Methods
Evaluate()
Evaluates the logical expression.
public object? Evaluate()
Returns
- object
The result of the evaluation.
Exceptions
- NCalcException
Thrown when there is an error in the expression.
Evaluate(Parser<LogicalExpression>, LogicalExpressionParserContext)
Evaluates the logical expression.
public object? Evaluate(Parser<LogicalExpression> parser, LogicalExpressionParserContext parserContext)
Parameters
parserParser<LogicalExpression>parserContextLogicalExpressionParserContext
Returns
- object
The result of the evaluation.
Exceptions
- NCalcException
Thrown when there is an error in the expression.
Evaluate(Parser<LogicalExpression>, LogicalExpressionParserContext, CancellationToken)
Evaluates the logical expression.
public object? Evaluate(Parser<LogicalExpression> parser, LogicalExpressionParserContext parserContext, CancellationToken cancellationToken)
Parameters
parserParser<LogicalExpression>parserContextLogicalExpressionParserContextcancellationTokenCancellationToken
Returns
- object
The result of the evaluation.
Exceptions
- NCalcException
Thrown when there is an error in the expression.
Evaluate(CancellationToken)
Evaluates the logical expression.
public object? Evaluate(CancellationToken cancellationToken)
Parameters
cancellationTokenCancellationToken
Returns
- object
The result of the evaluation.
Exceptions
- NCalcException
Thrown when there is an error in the expression.
ToLambda<TResult>(CancellationToken)
public Func<TResult> ToLambda<TResult>(CancellationToken cancellationToken = default)
Parameters
cancellationTokenCancellationToken
Returns
- Func<TResult>
Type Parameters
TResult
ToLambda<TContext, TResult>(CancellationToken)
public Func<TContext, TResult> ToLambda<TContext, TResult>(CancellationToken cancellationToken = default)
Parameters
cancellationTokenCancellationToken
Returns
- Func<TContext, TResult>
Type Parameters
TContextTResult
ToLinqExpression<TResult>(CancellationToken)
protected virtual Expression ToLinqExpression<TResult>(CancellationToken cancellationToken = default)
Parameters
cancellationTokenCancellationToken
Returns
Type Parameters
TResult
ToLinqExpression<TContext, TResult>(CancellationToken)
protected virtual Expression.LinqExpressionWithParameter ToLinqExpression<TContext, TResult>(CancellationToken cancellationToken = default)
Parameters
cancellationTokenCancellationToken
Returns
Type Parameters
TContextTResult
Events
EvaluateFunction
Event triggered to handle function evaluation.
public event EvaluateFunctionHandler EvaluateFunction
Event Type
EvaluateParameter
Event triggered to handle parameter evaluation. If the value is not returned, the Parameters and DynamicParameters properties are checked for a value.
public event EvaluateParameterHandler EvaluateParameter
Event Type
MatchString
Event triggered to handle string matching. If the event handler is not assigned or does not return a value, the default matching using RegEx is performed.
public event MatchStringHandler MatchString
Event Type
UpdateParameter
Event triggered to handle parameter evaluation.
public event UpdateParameterHandler UpdateParameter