Condividi tramite


Expression.Continue Metodo

Definizione

Crea un oggetto GotoExpression che rappresenta un'istruzione continue.

Overload

Continue(LabelTarget)

Crea un oggetto GotoExpression che rappresenta un'istruzione continue.

Continue(LabelTarget, Type)

Crea un oggetto GotoExpression che rappresenta un'istruzione continue con il tipo specificato.

Continue(LabelTarget)

Origine:
GotoExpression.cs
Origine:
GotoExpression.cs
Origine:
GotoExpression.cs

Crea un oggetto GotoExpression che rappresenta un'istruzione 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

Parametri

target
LabelTarget

Oggetto LabelTarget a cui passerà l'oggetto GotoExpression.

Restituisce

Oggetto GotoExpression con la proprietà Kind uguale a Continue, la proprietà Target impostata su target e un valore Null da passare all'etichetta di destinazione al momento del passaggio.

Esempio

Nell'esempio seguente viene illustrato come creare un'espressione di ciclo che usa il Continue metodo .

// 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

Si applica a

Continue(LabelTarget, Type)

Origine:
GotoExpression.cs
Origine:
GotoExpression.cs
Origine:
GotoExpression.cs

Crea un oggetto GotoExpression che rappresenta un'istruzione continue con il tipo specificato.

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

Parametri

target
LabelTarget

Oggetto LabelTarget a cui passerà l'oggetto GotoExpression.

type
Type

Oggetto Type su cui impostare la proprietà Type.

Restituisce

Oggetto GotoExpression con la proprietà Kind uguale a Continue, la proprietà Target impostata su target, la proprietà Type impostata su type e un valore Null da passare all'etichetta di destinazione al momento del passaggio.

Si applica a