Table of Contents

Class Expression

Namespace
NCalc
Assembly
NCalc.Core.dll

This class represents a mathematical or logical expression that can be asynchronous 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
Inheritance
Expression
Inherited Members

Constructors

Expression(ExpressionContext?)

protected Expression(ExpressionContext? context = null)

Parameters

context ExpressionContext

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)

protected Expression(LogicalExpression logicalExpression, ExpressionContext context, ILogicalExpressionFactory logicalExpressionFactory, ILogicalExpressionCache logicalExpressionCache)

Parameters

logicalExpression LogicalExpression
context ExpressionContext
logicalExpressionFactory ILogicalExpressionFactory
logicalExpressionCache ILogicalExpressionCache

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)

protected Expression(string expressionString, ExpressionContext context, ILogicalExpressionFactory logicalExpressionFactory, ILogicalExpressionCache logicalExpressionCache)

Parameters

expressionString string
context ExpressionContext
logicalExpressionFactory ILogicalExpressionFactory
logicalExpressionCache ILogicalExpressionCache

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

AsyncFunctions

public IDictionary<string, AsyncExpressionFunction> AsyncFunctions { get; set; }

Property Value

IDictionary<string, AsyncExpressionFunction>

Context

protected ExpressionContext Context { get; }

Property Value

ExpressionContext

CultureInfo

Culture information for the expression evaluation.

public CultureInfo CultureInfo { get; set; }

Property Value

CultureInfo

DynamicParameters

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

Property Value

IDictionary<string, ExpressionParameter>

Error

public Exception? Error { get; }

Property Value

Exception

EvaluationVisitorFactory

protected IEvaluationVisitorFactory EvaluationVisitorFactory { get; }

Property Value

IEvaluationVisitorFactory

ExpressionString

Textual representation of the expression.

public string? ExpressionString { get; protected init; }

Property Value

string

Functions

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

Property Value

IDictionary<string, ExpressionFunction>

LogicalExpression

public LogicalExpression? LogicalExpression { get; set; }

Property Value

LogicalExpression

Options

Options for the expression evaluation.

public ExpressionOptions Options { get; set; }

Property Value

ExpressionOptions

Parameters

Parameters for the expression evaluation.

public IDictionary<string, object?> Parameters { get; set; }

Property Value

IDictionary<string, object>

Methods

Evaluate(CancellationToken)

Evaluates the logical expression.

public object? Evaluate(CancellationToken cancellationToken = default)

Parameters

cancellationToken CancellationToken

Returns

object

The result of the evaluation.

Exceptions

NCalcException

Thrown when there is an error in the expression.

EvaluateAsync(CancellationToken)

Asynchronously evaluates the logical expression.

public ValueTask<object?> EvaluateAsync(CancellationToken cancellationToken = default)

Parameters

cancellationToken CancellationToken

Cancellation token

Returns

ValueTask<object>

The result of the evaluation.

Exceptions

NCalcException

Thrown when there is an error in the expression.

GetFunctionNames(CancellationToken)

Returns a list with all function names from the expression.

public List<string> GetFunctionNames(CancellationToken cancellationToken = default)

Parameters

cancellationToken CancellationToken

Cancellation token

Returns

List<string>

GetLogicalExpression(CancellationToken)

public LogicalExpression? GetLogicalExpression(CancellationToken cancellationToken = default)

Parameters

cancellationToken CancellationToken

Returns

LogicalExpression

GetParameterNames(CancellationToken)

Returns a list with all parameter names from the expression.

public List<string> GetParameterNames(CancellationToken cancellationToken = default)

Parameters

cancellationToken CancellationToken

Cancellation token

Returns

List<string>

HasErrors(CancellationToken)

Create the LogicalExpression in order to check syntax errors. If errors are detected, the Error property contains the exception.

[MemberNotNullWhen(true, "Error")]
public bool HasErrors(CancellationToken cancellationToken = default)

Parameters

cancellationToken CancellationToken

Cancellation token

Returns

bool

True if the expression syntax is correct, otherwise False.

ToExpressionString(bool, CancellationToken)

public string ToExpressionString(bool evaluateParameters = false, CancellationToken cancellationToken = default)

Parameters

evaluateParameters bool
cancellationToken CancellationToken

Returns

string

Events

EvaluateAsyncFunction

Event triggered to handle async function evaluation.

public event EvaluateAsyncFunctionHandler EvaluateAsyncFunction

Event Type

EvaluateAsyncFunctionHandler

EvaluateFunction

Event triggered to handle function evaluation.

public event EvaluateFunctionHandler EvaluateFunction

Event Type

EvaluateFunctionHandler

EvaluateParameter

Event triggered to handle parameter evaluation.

public event EvaluateParameterHandler EvaluateParameter

Event Type

EvaluateParameterHandler