Class BlockExpressionSlim
Lightweight representation of a block that contains a sequence of expressions where variables can be defined.
Inherited Members
Namespace: System.Linq.Expressions
Assembly: Nuqleon.Linq.Expressions.Bonsai.dll
Syntax
public class BlockExpressionSlim : ExpressionSlim
Properties
Expressions
Gets the expressions in this block.
Declaration
public ReadOnlyCollection<ExpressionSlim> Expressions { get; }
Property Value
Type | Description |
---|---|
System.Collections.ObjectModel.ReadOnlyCollection<ExpressionSlim> |
NodeType
Gets the expression node type.
Declaration
public override ExpressionType NodeType { get; }
Property Value
Type | Description |
---|---|
System.Linq.Expressions.ExpressionType |
Overrides
Result
Gets the last expression in this block.
Declaration
public ExpressionSlim Result { get; }
Property Value
Type | Description |
---|---|
ExpressionSlim |
Type
Gets the type of the block expression.
Declaration
public TypeSlim Type { get; }
Property Value
Type | Description |
---|---|
TypeSlim |
Variables
Gets the variables defined in this block.
Declaration
public ReadOnlyCollection<ParameterExpressionSlim> Variables { get; }
Property Value
Type | Description |
---|---|
System.Collections.ObjectModel.ReadOnlyCollection<ParameterExpressionSlim> |
Methods
Accept(ExpressionSlimVisitor)
Accepts the expression tree node in the specified visitor.
Declaration
protected override ExpressionSlim Accept(ExpressionSlimVisitor visitor)
Parameters
Type | Name | Description |
---|---|---|
ExpressionSlimVisitor | visitor | Visitor to process the current expression tree node. |
Returns
Type | Description |
---|---|
ExpressionSlim | Result of visiting the node. |
Overrides
Accept<TExpression, TLambdaExpression, TParameterExpression, TNewExpression, TElementInit, TMemberBinding, TMemberAssignment, TMemberListBinding, TMemberMemberBinding, TCatchBlock, TSwitchCase, TLabelTarget>(ExpressionSlimVisitor<TExpression, TLambdaExpression, TParameterExpression, TNewExpression, TElementInit, TMemberBinding, TMemberAssignment, TMemberListBinding, TMemberMemberBinding, TCatchBlock, TSwitchCase, TLabelTarget>)
Accepts the expression tree node in the specified visitor.
Declaration
protected override TExpression Accept<TExpression, TLambdaExpression, TParameterExpression, TNewExpression, TElementInit, TMemberBinding, TMemberAssignment, TMemberListBinding, TMemberMemberBinding, TCatchBlock, TSwitchCase, TLabelTarget>(ExpressionSlimVisitor<TExpression, TLambdaExpression, TParameterExpression, TNewExpression, TElementInit, TMemberBinding, TMemberAssignment, TMemberListBinding, TMemberMemberBinding, TCatchBlock, TSwitchCase, TLabelTarget> visitor)
where TLambdaExpression : TExpression where TParameterExpression : TExpression where TNewExpression : TExpression where TMemberAssignment : TMemberBinding where TMemberListBinding : TMemberBinding where TMemberMemberBinding : TMemberBinding
Parameters
Type | Name | Description |
---|---|---|
ExpressionSlimVisitor<TExpression, TLambdaExpression, TParameterExpression, TNewExpression, TElementInit, TMemberBinding, TMemberAssignment, TMemberListBinding, TMemberMemberBinding, TCatchBlock, TSwitchCase, TLabelTarget> | visitor | Visitor to process the current expression tree node. |
Returns
Type | Description |
---|---|
TExpression | Result of visiting the node. |
Type Parameters
Name | Description |
---|---|
TExpression | Target type for expressions. |
TLambdaExpression | Target type for lambda expressions. This type has to derive from TExpression. |
TParameterExpression | Target type for parameter expressions. This type has to derive from TExpression. |
TNewExpression | Target type for new expressions. This type has to derive from TExpression. |
TElementInit | Target type for element initializers. |
TMemberBinding | Target type for member bindings. |
TMemberAssignment | Target type for member assignments. This type has to derive from TMemberBinding. |
TMemberListBinding | Target type for member list bindings. This type has to derive from TMemberBinding. |
TMemberMemberBinding | Target type for member member bindings. This type has to derive from TMemberBinding. |
TCatchBlock | Target type for catch blocks. |
TSwitchCase | Target type for switch cases. |
TLabelTarget | Target type for label targets. |
Overrides
Update(ReadOnlyCollection<ParameterExpressionSlim>, ReadOnlyCollection<ExpressionSlim>)
Creates a new expression that is like this one, but using the supplied children. If all of the children are the same, it will return this expression.
Declaration
public BlockExpressionSlim Update(ReadOnlyCollection<ParameterExpressionSlim> variables, ReadOnlyCollection<ExpressionSlim> expressions)
Parameters
Type | Name | Description |
---|---|---|
System.Collections.ObjectModel.ReadOnlyCollection<ParameterExpressionSlim> | variables | The Variables property of the result. |
System.Collections.ObjectModel.ReadOnlyCollection<ExpressionSlim> | expressions | The Expressions property of the result. |
Returns
Type | Description |
---|---|
BlockExpressionSlim | This expression if no children changed, or an expression with the updated children. |