Expression.Continue Метод

Определение

GotoExpression Создает представляющую инструкцию continue.

Перегрузки

Имя Описание
Continue(LabelTarget)

GotoExpression Создает представляющую инструкцию continue.

Continue(LabelTarget, Type)

GotoExpression Создает оператор continue с указанным типом.

Continue(LabelTarget)

Исходный код:
GotoExpression.cs
Исходный код:
GotoExpression.cs
Исходный код:
GotoExpression.cs
Исходный код:
GotoExpression.cs
Исходный код:
GotoExpression.cs

GotoExpression Создает представляющую инструкцию continue.

public:
 static System::Linq::Expressions::GotoExpression ^ Continue(System::Linq::Expressions::LabelTarget ^ target);
public static System.Linq.Expressions.GotoExpression Continue(System.Linq.Expressions.LabelTarget target);
static member Continue : System.Linq.Expressions.LabelTarget -> System.Linq.Expressions.GotoExpression
Public Shared Function Continue (target As LabelTarget) As GotoExpression

Параметры

target
LabelTarget

LabelTarget Это GotoExpression будет переходить к.

Возвращаемое значение

Значение GotoExpression со Kind значением "Продолжить", свойство Targetимеет target значение NULL, передаваемое целевой меткой при переходе.

Примеры

В следующем примере показано, как создать выражение цикла, использующее Continue метод.

// Add the following directive to your file:
// using System.Linq.Expressions;

// A label that is used by a break statement and a loop.
LabelTarget breakLabel = Expression.Label();

// A label that is used by the Continue statement and the loop it refers to.
LabelTarget continueLabel = Expression.Label();

// This expression represents a Continue statement.
Expression continueExpr = Expression.Continue(continueLabel);

// A variable that triggers the exit from the loop.
ParameterExpression count = Expression.Parameter(typeof(int));

// A loop statement.
Expression loopExpr = Expression.Loop(
    Expression.Block(
        Expression.IfThen(
            Expression.GreaterThan(count, Expression.Constant(3)),
            Expression.Break(breakLabel)
        ),
        Expression.PreIncrementAssign(count),
        Expression.Call(
                    null,
                    typeof(Console).GetMethod("WriteLine", new Type[] { typeof(String) }),
                    Expression.Constant("Loop")
                ),
        continueExpr,
        Expression.PreDecrementAssign(count)
    ),
    breakLabel,
    continueLabel
);

// The following statement first creates an expression tree,
// then compiles it, and then runs it.
// Without the Continue statement, the loop would go on forever.
Expression.Lambda<Action<int>>(loopExpr, count).Compile()(1);

// This code example produces the following output:
//
// Loop
// Loop
// Loop
' Add the following directive to your file:
' Imports System.Linq.Expressions  

' A label that is used by a break statement and a loop. 
Dim breakLabel As LabelTarget = Expression.Label()

' A label that is used by the Continue statement and the loop it refers to.
Dim continueLabel As LabelTarget = Expression.Label()

' This expression represents a Continue statement.
Dim continueExpr As Expression = Expression.Continue(continueLabel)

' A variable that triggers the exit from the loop.
Dim count As ParameterExpression = Expression.Parameter(GetType(Integer))

' A loop statement.
Dim loopExpr As Expression = Expression.Loop(
       Expression.Block(
           Expression.IfThen(
               Expression.GreaterThan(count, Expression.Constant(3)),
               Expression.Break(breakLabel)
           ),
           Expression.PreIncrementAssign(count),
           Expression.Call(
                       Nothing,
                       GetType(Console).GetMethod("WriteLine", New Type() {GetType(String)}),
                       Expression.Constant("Loop")
                   ),
           continueExpr,
           Expression.PreDecrementAssign(count)
       ),
       breakLabel,
       continueLabel
   )

' The following statement first creates an expression tree,
' then compiles it, and then runs it.
' Without the Continue statement, the loop would go on forever.
Expression.Lambda(Of Action(Of Integer))(loopExpr, count).Compile()(1)

' This code example produces the following output:
'
' Loop
' Loop
' Loop

Применяется к

Continue(LabelTarget, Type)

Исходный код:
GotoExpression.cs
Исходный код:
GotoExpression.cs
Исходный код:
GotoExpression.cs
Исходный код:
GotoExpression.cs
Исходный код:
GotoExpression.cs

GotoExpression Создает оператор continue с указанным типом.

public:
 static System::Linq::Expressions::GotoExpression ^ Continue(System::Linq::Expressions::LabelTarget ^ target, Type ^ type);
public static System.Linq.Expressions.GotoExpression Continue(System.Linq.Expressions.LabelTarget target, Type type);
static member Continue : System.Linq.Expressions.LabelTarget * Type -> System.Linq.Expressions.GotoExpression
Public Shared Function Continue (target As LabelTarget, type As Type) As GotoExpression

Параметры

target
LabelTarget

LabelTarget Это GotoExpression будет переходить к.

type
Type

Значение Type , равное свойству Type .

Возвращаемое значение

GotoExpression Значение Kind с равным "Продолжить", свойство Targetимеет значение , target свойство, заданное Typeзначением , type и значение NULL, которое необходимо передать целевой метки при переходе.

Применяется к