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
contextExpressionContext
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)
protected Expression(LogicalExpression logicalExpression, ExpressionContext context, ILogicalExpressionFactory logicalExpressionFactory, ILogicalExpressionCache logicalExpressionCache)
Parameters
logicalExpressionLogicalExpressioncontextExpressionContextlogicalExpressionFactoryILogicalExpressionFactorylogicalExpressionCacheILogicalExpressionCache
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)
protected Expression(string expressionString, ExpressionContext context, ILogicalExpressionFactory logicalExpressionFactory, ILogicalExpressionCache logicalExpressionCache)
Parameters
expressionStringstringcontextExpressionContextlogicalExpressionFactoryILogicalExpressionFactorylogicalExpressionCacheILogicalExpressionCache
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
AsyncFunctions
public IDictionary<string, AsyncExpressionFunction> AsyncFunctions { get; set; }
Property Value
Context
protected ExpressionContext Context { get; }
Property Value
CultureInfo
Culture information for the expression evaluation.
public CultureInfo CultureInfo { get; set; }
Property Value
DynamicParameters
public IDictionary<string, ExpressionParameter> DynamicParameters { get; set; }
Property Value
Error
public Exception? Error { get; }
Property Value
EvaluationVisitorFactory
protected IEvaluationVisitorFactory EvaluationVisitorFactory { get; }
Property Value
ExpressionString
Textual representation of the expression.
public string? ExpressionString { get; protected init; }
Property Value
Functions
public IDictionary<string, ExpressionFunction> Functions { get; set; }
Property Value
LogicalExpression
public LogicalExpression? LogicalExpression { get; set; }
Property Value
Options
Options for the expression evaluation.
public ExpressionOptions Options { get; set; }
Property Value
Parameters
Parameters for the expression evaluation.
public IDictionary<string, object?> Parameters { get; set; }
Property Value
Methods
Evaluate(CancellationToken)
Evaluates the logical expression.
public object? Evaluate(CancellationToken cancellationToken = default)
Parameters
cancellationTokenCancellationToken
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
cancellationTokenCancellationTokenCancellation token
Returns
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
cancellationTokenCancellationTokenCancellation token
Returns
GetLogicalExpression(CancellationToken)
public LogicalExpression? GetLogicalExpression(CancellationToken cancellationToken = default)
Parameters
cancellationTokenCancellationToken
Returns
GetParameterNames(CancellationToken)
Returns a list with all parameter names from the expression.
public List<string> GetParameterNames(CancellationToken cancellationToken = default)
Parameters
cancellationTokenCancellationTokenCancellation token
Returns
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
cancellationTokenCancellationTokenCancellation 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
evaluateParametersboolcancellationTokenCancellationToken
Returns
Events
EvaluateAsyncFunction
Event triggered to handle async function evaluation.
public event EvaluateAsyncFunctionHandler EvaluateAsyncFunction
Event Type
EvaluateFunction
Event triggered to handle function evaluation.
public event EvaluateFunctionHandler EvaluateFunction
Event Type
EvaluateParameter
Event triggered to handle parameter evaluation.
public event EvaluateParameterHandler EvaluateParameter