Class BinaryExpression
- Namespace
- xFunc.Maths.Expressions
- Assembly
- xFunc.Maths.dll
The base class for binary operations.
public abstract class BinaryExpression : IExpression
- Inheritance
-
BinaryExpression
- Implements
- Derived
- Inherited Members
- Extension Methods
Constructors
BinaryExpression(ImmutableArray<IExpression>)
Initializes a new instance of the BinaryExpression class.
protected BinaryExpression(ImmutableArray<IExpression> arguments)
Parameters
argumentsImmutableArray<IExpression>The list of arguments.
Exceptions
- ArgumentNullException
argumentsisnull.- ParseException
The
argumentscollection should have only two arguments.
BinaryExpression(IExpression, IExpression)
Initializes a new instance of the BinaryExpression class.
protected BinaryExpression(IExpression left, IExpression right)
Parameters
leftIExpressionThe left (first) operand.
rightIExpressionThe right (second) operand.
Exceptions
- ArgumentNullException
leftorrightisnull.
Properties
Left
Gets the left (first) operand.
public IExpression Left { get; }
Property Value
Right
Gets the right (second) operand.
public IExpression Right { get; }
Property Value
Methods
AnalyzeInternal<TResult>(IAnalyzer<TResult>)
Analyzes the current expression.
protected abstract TResult AnalyzeInternal<TResult>(IAnalyzer<TResult> analyzer)
Parameters
analyzerIAnalyzer<TResult>The analyzer.
Returns
- TResult
The analysis result.
Type Parameters
TResultThe type of the result.
AnalyzeInternal<TResult, TContext>(IAnalyzer<TResult, TContext>, TContext)
Analyzes the current expression.
protected abstract TResult AnalyzeInternal<TResult, TContext>(IAnalyzer<TResult, TContext> analyzer, TContext context)
Parameters
analyzerIAnalyzer<TResult, TContext>The analyzer.
contextTContextThe context.
Returns
- TResult
The analysis result.
Type Parameters
TResultThe type of the result.
TContextThe type of additional parameter for analyzer.
Analyze<TResult>(IAnalyzer<TResult>)
Analyzes the current expression.
public TResult Analyze<TResult>(IAnalyzer<TResult> analyzer)
Parameters
analyzerIAnalyzer<TResult>The analyzer.
Returns
- TResult
The analysis result.
Type Parameters
TResultThe type of the result.
Exceptions
- ArgumentNullException
analyzerisnull.
Analyze<TResult, TContext>(IAnalyzer<TResult, TContext>, TContext)
Analyzes the current expression.
public TResult Analyze<TResult, TContext>(IAnalyzer<TResult, TContext> analyzer, TContext context)
Parameters
analyzerIAnalyzer<TResult, TContext>The analyzer.
contextTContextThe context.
Returns
- TResult
The analysis result.
Type Parameters
TResultThe type of the result.
TContextThe type of additional parameter for analyzer.
Exceptions
- ArgumentNullException
analyzerisnull.
Clone(IExpression?, IExpression?)
Clones this instance of the IExpression.
public abstract IExpression Clone(IExpression? left = null, IExpression? right = null)
Parameters
leftIExpressionThe left argument of new expression.
rightIExpressionThe right argument of new expression.
Returns
- IExpression
Returns the new instance of IExpression that is a clone of this instance.
Deconstruct(out IExpression, out IExpression)
Deconstructs BinaryExpression.
public void Deconstruct(out IExpression left, out IExpression right)
Parameters
leftIExpressionThe left operand.
rightIExpressionThe right operand.
Equals(object?)
Determines whether the specified object is equal to the current object.
public override bool Equals(object? obj)
Parameters
objobjectThe object to compare with the current object.
Returns
Execute()
Executes this expression. Don't use this method if your expression has variables or user-functions.
public object Execute()
Returns
- object
A result of the execution.
Exceptions
- ExecutionException
The result of Left or Right operand evaluation is not supported by this expression.
Execute(ExpressionParameters?)
Executes this expression.
public abstract object Execute(ExpressionParameters? parameters)
Parameters
parametersExpressionParametersAn object that contains all parameters and functions for expressions.
Returns
- object
A result of the execution.
Exceptions
- ExecutionException
The result of Left or Right operand evaluation is not supported by this expression.
- See Also
ToString()
Returns a string that represents the current object.
public override string ToString()
Returns
- string
A string that represents the current object.
ToString(IFormatter)
Returns a string that represents this instance.
public string ToString(IFormatter formatter)
Parameters
formatterIFormatterThe formatter.