Class WhileExpression
Represents while
loop expression.
Namespace: DotNext.Linq.Expressions
Assembly: DotNext.Metaprogramming.dll
Syntax
public sealed class WhileExpression : Expression, ILoopLabels
Properties
| Improve this Doc View SourceBody
Gets body of the loop.
Declaration
public Expression Body { get; }
Property Value
Type | Description |
---|---|
Expression |
BreakLabel
Gets label that is used by the loop body as a break statement target.
Declaration
public LabelTarget BreakLabel { get; }
Property Value
Type | Description |
---|---|
LabelTarget |
CanReduce
Always returns true because
this expression is
Declaration
public override bool CanReduce { get; }
Property Value
Type | Description |
---|---|
Boolean |
ContinueLabel
Gets label that is used by the loop body as a continue statement target.
Declaration
public LabelTarget ContinueLabel { get; }
Property Value
Type | Description |
---|---|
LabelTarget |
NodeType
Always returns
Declaration
public override ExpressionType NodeType { get; }
Property Value
Type | Description |
---|---|
ExpressionType |
Test
Gets loop condition.
Declaration
public Expression Test { get; }
Property Value
Type | Description |
---|---|
Expression |
Type
Always returns
Declaration
public override Type Type { get; }
Property Value
Type | Description |
---|---|
Type |
Methods
| Improve this Doc View SourceCreate(Expression, WhileExpression.Statement, Boolean)
Creates a new loop expression.
Declaration
public static WhileExpression Create(Expression test, WhileExpression.Statement body, bool checkConditionFirst)
Parameters
Type | Name | Description |
---|---|---|
Expression | test | The loop condition. |
WhileExpression.Statement | body | The delegate that is used to construct loop body. |
Boolean | checkConditionFirst | true to check condition before loop body; false to use do-while style. |
Returns
Type | Description |
---|---|
WhileExpression | The constructed loop expression. |
Create(Expression, Expression, Boolean)
Creates a new loop expression.
Declaration
public static WhileExpression Create(Expression test, Expression body, bool checkConditionFirst)
Parameters
Type | Name | Description |
---|---|---|
Expression | test | The loop condition. |
Expression | body | The loop body. |
Boolean | checkConditionFirst | true to check condition before loop body; false to use do-while style. |
Returns
Type | Description |
---|---|
WhileExpression | The constructed loop expression. |
Reduce()
Translates this expression into predefined set of expressions using Lowering technique.
Declaration
public override Expression Reduce()
Returns
Type | Description |
---|---|
Expression | Translated expression. |
Update(Expression)
Reconstructs loop expression with a new body.
Declaration
public WhileExpression Update(Expression body)
Parameters
Type | Name | Description |
---|---|---|
Expression | body | The body of the loop. |
Returns
Type | Description |
---|---|
WhileExpression | Updated loop expression. |