Dieser Artikel wurde maschinell übersetzt. Wenn Sie die englische Version des Artikels anzeigen möchten, aktivieren Sie das Kontrollkästchen Englisch. Sie können den englischen Text auch in einem Popupfenster anzeigen, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

Expression.Loop-Methode: (Expression, LabelTarget)

.NET Framework (current version)
 

Veröffentlicht: Oktober 2016

Erstellt eine LoopExpression mit dem angegebenen Text und Break-Ziel.

Namespace:   System.Linq.Expressions
Assembly:  System.Core (in System.Core.dll)

public static LoopExpression Loop(
	Expression body,
	LabelTarget break
)

Parameter

body
Type: System.Linq.Expressions.Expression

Der Text der Schleife.

break
Type: System.Linq.Expressions.LabelTarget

Das vom Schleifentext verwendete Break-Ziel.

Rückgabewert

Type: System.Linq.Expressions.LoopExpression

Der erstellte LoopExpression.

Im folgenden Beispiel wird veranschaulicht, wie einen Blockausdruck erstellen, enthält ein LoopExpression Objekt.

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

// Creating a parameter expression.
ParameterExpression value = Expression.Parameter(typeof(int), "value");

// Creating an expression to hold a local variable. 
ParameterExpression result = Expression.Parameter(typeof(int), "result");

// Creating a label to jump to from a loop.
LabelTarget label = Expression.Label(typeof(int));

// Creating a method body.
BlockExpression block = Expression.Block(
    new[] { result },
    Expression.Assign(result, Expression.Constant(1)),
        Expression.Loop(
           Expression.IfThenElse(
               Expression.GreaterThan(value, Expression.Constant(1)),
               Expression.MultiplyAssign(result,
                   Expression.PostDecrementAssign(value)),
               Expression.Break(label, result)
           ),
       label
    )
);

// Compile and run an expression tree.
int factorial = Expression.Lambda<Func<int, int>>(block, value).Compile()(5);

Console.WriteLine(factorial);

// This code example produces the following output:
//
// 120

Universelle Windows-Plattform
Verfügbar seit 8
.NET Framework
Verfügbar seit 4.0
Portierbare Klassenbibliothek
Unterstützt in: portierbare .NET-Plattformen
Silverlight
Verfügbar seit 4.0
Windows Phone Silverlight
Verfügbar seit 8.0
Windows Phone
Verfügbar seit 8.1
Zurück zum Anfang
Anzeigen: