Show / Hide Table of Contents

Class ExpressionSlimVisitor<TExpression>

Base class for expression visitors that rewrite an expression tree into a target type.

Inheritance
System.Object
ExpressionSlimVisitor<TExpression>
ExpressionSlimVisitor<TExpression, TLambdaExpression, TParameterExpression, TNewExpression, TElementInit, TMemberBinding, TMemberAssignment, TMemberListBinding, TMemberMemberBinding, TCatchBlock, TSwitchCase, TLabelTarget>
Namespace: System.Linq.Expressions
Assembly: Nuqleon.Linq.Expressions.Bonsai.dll
Syntax
public abstract class ExpressionSlimVisitor<TExpression> : Object
Type Parameters
Name Description
TExpression

Target type for expressions.

Constructors

ExpressionSlimVisitor()

Declaration
protected ExpressionSlimVisitor()

Methods

Visit(ExpressionSlim)

Visits the specified expression and rewrites it to the target expression type.

Declaration
public virtual TExpression Visit(ExpressionSlim node)
Parameters
Type Name Description
ExpressionSlim node

Expression to visit.

Returns
Type Description
TExpression

Result of visiting the expression.

Visit<T>(ReadOnlyCollection<T>)

Visits the collection of expression nodes and rewrites them to the target expression type.

Declaration
protected ReadOnlyCollection<TExpression> Visit<T>(ReadOnlyCollection<T> nodes)
    where T : ExpressionSlim
Parameters
Type Name Description
System.Collections.ObjectModel.ReadOnlyCollection<T> nodes

Expression nodes to rewrite.

Returns
Type Description
System.Collections.ObjectModel.ReadOnlyCollection<TExpression>

Collection of rewritten expression nodes.

Type Parameters
Name Description
T

Type of the expressions to rewrite. This type should derive from Expression.

VisitAndConvert<TStronglyTypedResult>(ExpressionSlim)

Visits the specified expression and rewrites it to the specified target expression type.

Declaration
protected TStronglyTypedResult VisitAndConvert<TStronglyTypedResult>(ExpressionSlim node)
    where TStronglyTypedResult : TExpression
Parameters
Type Name Description
ExpressionSlim node

Expression to visit.

Returns
Type Description
TStronglyTypedResult

Result of visiting the expression.

Type Parameters
Name Description
TStronglyTypedResult

Type of the result of the rewrite. This type should derive from TExpression.

VisitAndConvert<T, TStronglyTypedResult>(ReadOnlyCollection<T>)

Visits the collection of expression nodes and rewrites them to the specified target expression type.

Declaration
protected ReadOnlyCollection<TStronglyTypedResult> VisitAndConvert<T, TStronglyTypedResult>(ReadOnlyCollection<T> nodes)
    where T : ExpressionSlim where TStronglyTypedResult : TExpression
Parameters
Type Name Description
System.Collections.ObjectModel.ReadOnlyCollection<T> nodes

Expression nodes to rewrite.

Returns
Type Description
System.Collections.ObjectModel.ReadOnlyCollection<TStronglyTypedResult>

Collection of rewritten expression nodes.

Type Parameters
Name Description
T

Type of the expressions to rewrite. This type should derive from Expression.

TStronglyTypedResult

Type of the results of the rewrite. This type should derive from TExpression.

VisitArguments(IArgumentProviderSlim)

Visits the arguments in an argument provider.

Declaration
protected ReadOnlyCollection<TExpression> VisitArguments(IArgumentProviderSlim nodes)
Parameters
Type Name Description
IArgumentProviderSlim nodes

The argument provider whose arguments to visit.

Returns
Type Description
System.Collections.ObjectModel.ReadOnlyCollection<TExpression>

The rewritten arguments.

VisitBinary(BinaryExpressionSlim)

Visits the children of the BinaryExpression.

Declaration
protected abstract TExpression VisitBinary(BinaryExpressionSlim node)
Parameters
Type Name Description
BinaryExpressionSlim node

Expression to visit.

Returns
Type Description
TExpression

Result of visiting the expression.

VisitBlock(BlockExpressionSlim)

Visits the children of the BlockExpression.

Declaration
protected abstract TExpression VisitBlock(BlockExpressionSlim node)
Parameters
Type Name Description
BlockExpressionSlim node

Expression to visit.

Returns
Type Description
TExpression

Result of visiting the expression.

VisitConditional(ConditionalExpressionSlim)

Visits the children of the ConditionalExpression.

Declaration
protected abstract TExpression VisitConditional(ConditionalExpressionSlim node)
Parameters
Type Name Description
ConditionalExpressionSlim node

Expression to visit.

Returns
Type Description
TExpression

Result of visiting the expression.

VisitConstant(ConstantExpressionSlim)

Visits the children of the ConstantExpression.

Declaration
protected abstract TExpression VisitConstant(ConstantExpressionSlim node)
Parameters
Type Name Description
ConstantExpressionSlim node

Expression to visit.

Returns
Type Description
TExpression

Result of visiting the expression.

VisitDefault(DefaultExpressionSlim)

Visits the children of the DefaultExpression.

Declaration
protected abstract TExpression VisitDefault(DefaultExpressionSlim node)
Parameters
Type Name Description
DefaultExpressionSlim node

Expression to visit.

Returns
Type Description
TExpression

Result of visiting the expression.

VisitExtension(ExpressionSlim)

Visits the children of the extension expression node.

Declaration
protected abstract TExpression VisitExtension(ExpressionSlim node)
Parameters
Type Name Description
ExpressionSlim node

Expression to visit.

Returns
Type Description
TExpression

Result of visiting the expression.

VisitGoto(GotoExpressionSlim)

Visits the children of the GotoExpression.

Declaration
protected abstract TExpression VisitGoto(GotoExpressionSlim node)
Parameters
Type Name Description
GotoExpressionSlim node

Expression to visit.

Returns
Type Description
TExpression

Result of visiting the expression.

VisitIfNotNull<T, TResult>(T, Func<T, TResult>)

Visits the specified node using the specified visitor function if it's not null.

Declaration
protected static TResult VisitIfNotNull<T, TResult>(T node, Func<T, TResult> nodeVisitor)
Parameters
Type Name Description
T node

Node to visit.

System.Func<T, TResult> nodeVisitor

Visitor function to apply to the node.

Returns
Type Description
TResult

Result of applying the visitor function to the node.

Type Parameters
Name Description
T

Type of the node to visit.

TResult

Type of the result of visiting the node.

VisitIndex(IndexExpressionSlim)

Visits the children of the IndexExpression.

Declaration
protected abstract TExpression VisitIndex(IndexExpressionSlim node)
Parameters
Type Name Description
IndexExpressionSlim node

Expression to visit.

Returns
Type Description
TExpression

Result of visiting the expression.

VisitInvocation(InvocationExpressionSlim)

Visits the children of the InvocationExpression.

Declaration
protected abstract TExpression VisitInvocation(InvocationExpressionSlim node)
Parameters
Type Name Description
InvocationExpressionSlim node

Expression to visit.

Returns
Type Description
TExpression

Result of visiting the expression.

VisitLabel(LabelExpressionSlim)

Visits the children of the LabelExpression.

Declaration
protected abstract TExpression VisitLabel(LabelExpressionSlim node)
Parameters
Type Name Description
LabelExpressionSlim node

Expression to visit.

Returns
Type Description
TExpression

Result of visiting the expression.

VisitLambda(LambdaExpressionSlim)

Visits the children of the LambdaExpression.

Declaration
protected abstract TExpression VisitLambda(LambdaExpressionSlim node)
Parameters
Type Name Description
LambdaExpressionSlim node

Expression to visit.

Returns
Type Description
TExpression

Result of visiting the expression.

VisitListInit(ListInitExpressionSlim)

Visits the children of the ListInitExpression.

Declaration
protected abstract TExpression VisitListInit(ListInitExpressionSlim node)
Parameters
Type Name Description
ListInitExpressionSlim node

Expression to visit.

Returns
Type Description
TExpression

Result of visiting the expression.

VisitLoop(LoopExpressionSlim)

Visits the children of the LoopExpression.

Declaration
protected abstract TExpression VisitLoop(LoopExpressionSlim node)
Parameters
Type Name Description
LoopExpressionSlim node

Expression to visit.

Returns
Type Description
TExpression

Result of visiting the expression.

VisitMember(MemberExpressionSlim)

Visits the children of the MemberExpression.

Declaration
protected abstract TExpression VisitMember(MemberExpressionSlim node)
Parameters
Type Name Description
MemberExpressionSlim node

Expression to visit.

Returns
Type Description
TExpression

Result of visiting the expression.

VisitMemberInit(MemberInitExpressionSlim)

Visits the children of the MemberInitExpression.

Declaration
protected abstract TExpression VisitMemberInit(MemberInitExpressionSlim node)
Parameters
Type Name Description
MemberInitExpressionSlim node

Expression to visit.

Returns
Type Description
TExpression

Result of visiting the expression.

VisitMethodCall(MethodCallExpressionSlim)

Visits the children of the MethodCallExpression.

Declaration
protected abstract TExpression VisitMethodCall(MethodCallExpressionSlim node)
Parameters
Type Name Description
MethodCallExpressionSlim node

Expression to visit.

Returns
Type Description
TExpression

Result of visiting the expression.

VisitNew(NewExpressionSlim)

Visits the children of the NewExpression.

Declaration
protected abstract TExpression VisitNew(NewExpressionSlim node)
Parameters
Type Name Description
NewExpressionSlim node

Expression to visit.

Returns
Type Description
TExpression

Result of visiting the expression.

VisitNewArray(NewArrayExpressionSlim)

Visits the children of the NewArrayExpression.

Declaration
protected abstract TExpression VisitNewArray(NewArrayExpressionSlim node)
Parameters
Type Name Description
NewArrayExpressionSlim node

Expression to visit.

Returns
Type Description
TExpression

Result of visiting the expression.

VisitParameter(ParameterExpressionSlim)

Visits the children of the ParameterExpression.

Declaration
protected abstract TExpression VisitParameter(ParameterExpressionSlim node)
Parameters
Type Name Description
ParameterExpressionSlim node

Expression to visit.

Returns
Type Description
TExpression

Result of visiting the expression.

VisitSwitch(SwitchExpressionSlim)

Visits the children of the SwitchExpression.

Declaration
protected abstract TExpression VisitSwitch(SwitchExpressionSlim node)
Parameters
Type Name Description
SwitchExpressionSlim node

Expression to visit.

Returns
Type Description
TExpression

Result of visiting the expression.

VisitTry(TryExpressionSlim)

Visits the children of the TryExpression.

Declaration
protected abstract TExpression VisitTry(TryExpressionSlim node)
Parameters
Type Name Description
TryExpressionSlim node

Expression to visit.

Returns
Type Description
TExpression

Result of visiting the expression.

VisitTypeBinary(TypeBinaryExpressionSlim)

Visits the children of the TypeBinaryExpression.

Declaration
protected abstract TExpression VisitTypeBinary(TypeBinaryExpressionSlim node)
Parameters
Type Name Description
TypeBinaryExpressionSlim node

Expression to visit.

Returns
Type Description
TExpression

Result of visiting the expression.

VisitUnary(UnaryExpressionSlim)

Visits the children of the UnaryExpression.

Declaration
protected abstract TExpression VisitUnary(UnaryExpressionSlim node)
Parameters
Type Name Description
UnaryExpressionSlim node

Expression to visit.

Returns
Type Description
TExpression

Result of visiting the expression.

In This Article
Back to top Generated by DocFX