Table of Contents

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

logicalExpression LogicalExpression

Expression(LogicalExpression, ExpressionContext?)

public Expression(LogicalExpression logicalExpression, ExpressionContext? context = null)

Parameters

logicalExpression LogicalExpression
context ExpressionContext

Expression(LogicalExpression, ExpressionContext, ILogicalExpressionFactory, ILogicalExpressionCache, IEvaluationVisitorFactory)

public Expression(LogicalExpression logicalExpression, ExpressionContext context, ILogicalExpressionFactory factory, ILogicalExpressionCache cache, IEvaluationVisitorFactory evaluationVisitorFactory)

Parameters

logicalExpression LogicalExpression
context ExpressionContext
factory ILogicalExpressionFactory
cache ILogicalExpressionCache
evaluationVisitorFactory IEvaluationVisitorFactory

Expression(LogicalExpression, ExpressionOptions, CultureInfo?)

public Expression(LogicalExpression logicalExpression, ExpressionOptions options = ExpressionOptions.None, CultureInfo? cultureInfo = null)

Parameters

logicalExpression LogicalExpression
options ExpressionOptions
cultureInfo CultureInfo

Expression(string?)

public Expression(string? expression)

Parameters

expression string

Expression(string?, ExpressionContext?)

public Expression(string? expression, ExpressionContext? context = null)

Parameters

expression string
context ExpressionContext

Expression(string, ExpressionContext, ILogicalExpressionFactory, ILogicalExpressionCache, IEvaluationVisitorFactory)

public Expression(string expression, ExpressionContext context, ILogicalExpressionFactory factory, ILogicalExpressionCache cache, IEvaluationVisitorFactory evaluationVisitorFactory)

Parameters

expression string
context ExpressionContext
factory ILogicalExpressionFactory
cache ILogicalExpressionCache
evaluationVisitorFactory IEvaluationVisitorFactory

Expression(string?, ExpressionOptions, CultureInfo?)

public Expression(string? expression, ExpressionOptions options = ExpressionOptions.None, CultureInfo? cultureInfo = null)

Parameters

expression string
options ExpressionOptions
cultureInfo CultureInfo

Properties

DynamicParameters

public IDictionary<string, ExpressionParameter> DynamicParameters { get; set; }

Property Value

IDictionary<string, ExpressionParameter>

EvaluationVisitorFactory

protected IEvaluationVisitorFactory EvaluationVisitorFactory { get; }

Property Value

IEvaluationVisitorFactory

Functions

public IDictionary<string, ExpressionFunction> Functions { get; set; }

Property Value

IDictionary<string, ExpressionFunction>

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

parser Parser<LogicalExpression>
parserContext LogicalExpressionParserContext

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

parser Parser<LogicalExpression>
parserContext LogicalExpressionParserContext
cancellationToken CancellationToken

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

cancellationToken CancellationToken

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

cancellationToken CancellationToken

Returns

Func<TResult>

Type Parameters

TResult

ToLambda<TContext, TResult>(CancellationToken)

public Func<TContext, TResult> ToLambda<TContext, TResult>(CancellationToken cancellationToken = default)

Parameters

cancellationToken CancellationToken

Returns

Func<TContext, TResult>

Type Parameters

TContext
TResult

ToLinqExpression<TResult>(CancellationToken)

protected virtual Expression ToLinqExpression<TResult>(CancellationToken cancellationToken = default)

Parameters

cancellationToken CancellationToken

Returns

Expression

Type Parameters

TResult

ToLinqExpression<TContext, TResult>(CancellationToken)

protected virtual Expression.LinqExpressionWithParameter ToLinqExpression<TContext, TResult>(CancellationToken cancellationToken = default)

Parameters

cancellationToken CancellationToken

Returns

Expression.LinqExpressionWithParameter

Type Parameters

TContext
TResult

Events

EvaluateFunction

Event triggered to handle function evaluation.

public event EvaluateFunctionHandler EvaluateFunction

Event Type

EvaluateFunctionHandler

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

EvaluateParameterHandler

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

MatchStringHandler

UpdateParameter

Event triggered to handle parameter evaluation.

public event UpdateParameterHandler UpdateParameter

Event Type

UpdateParameterHandler