GotoExpression Klasse

Definition

Stellt einen bedingungslosen Sprung dar.Represents an unconditional jump. Hierzu zählen return-Anweisungen, break- und continue-Anweisungen sowie andere Sprünge.This includes return statements, break and continue statements, and other jumps.

public ref class GotoExpression sealed : System::Linq::Expressions::Expression
public sealed class GotoExpression : System.Linq.Expressions.Expression
type GotoExpression = class
    inherit Expression
Public NotInheritable Class GotoExpression
Inherits Expression
Vererbung
GotoExpression

Beispiele

Im folgenden Beispiel wird veranschaulicht, wie mit der-Methode ein Ausdruck erstellt wird, der ein- GotoExpression Objekt enthält Goto .The following example demonstrates how to create an expression that contains a GotoExpression object by using the Goto method.

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

// A label expression of the void type that is the target for the GotoExpression.
LabelTarget returnTarget = Expression.Label();

// This block contains a GotoExpression.
// It transfers execution to a label expression that is initialized with the same LabelTarget as the GotoExpression.
// The types of the GotoExpression, label expression, and LabelTarget must match.
BlockExpression blockExpr =
    Expression.Block(
        Expression.Call(typeof(Console).GetMethod("WriteLine", new Type[] { typeof(string) }), Expression.Constant("GoTo")),
        Expression.Goto(returnTarget),
        Expression.Call(typeof(Console).GetMethod("WriteLine", new Type[] { typeof(string) }), Expression.Constant("Other Work")),
        Expression.Label(returnTarget)
    );

// The following statement first creates an expression tree,
// then compiles it, and then runs it.
Expression.Lambda<Action>(blockExpr).Compile()();

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

// "Other Work" is not printed because
// the GoTo expression transfers execution from Expression.GoTo(returnTarget)
// to Expression.Label(returnTarget).
' Add the following directive to your file:
' Imports System.Linq.Expressions  

' A label expression of the void type that is the target for the GoToExpression.
Dim returnTarget As LabelTarget = Expression.Label()

' This block contains a GotoExpression.
' It transfers execution to a label expression that is initialized with the same LabelTarget as the GotoExpression.
' The types of the GotoExpression, label expression, and LabelTarget must match.
Dim blockExpr As BlockExpression =
      Expression.Block(
          Expression.Call(GetType(Console).GetMethod("WriteLine", New Type() {GetType(String)}), Expression.Constant("GoTo")),
          Expression.Goto(returnTarget),
          Expression.Call(GetType(Console).GetMethod("WriteLine", New Type() {GetType(String)}), Expression.Constant("Other Work")),
          Expression.Label(returnTarget)
      )

' The following statement first creates an expression tree,
' then compiles it, and then runs it.
Expression.Lambda(Of Action)(blockExpr).Compile()()

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

' "Other Work" is not printed because 
' the Return expression transfers execution from Expression.GoTo(returnTarget)
' to Expression.Label(returnTarget).

Eigenschaften

CanReduce

Gibt an, dass der Knoten zu einem einfacheren Knoten reduziert werden kann.Indicates that the node can be reduced to a simpler node. Wenn true zurückgegeben wird, kann Reduce() aufgerufen werden, um das reduzierte Formular zu erzeugen.If this returns true, Reduce() can be called to produce the reduced form.

(Geerbt von Expression)
Kind

Die Art des "Gehe zu"-Ausdrucks.The kind of the "go to" expression. Dient nur zu Informationszwecken.Serves information purposes only.

NodeType

Gibt den Knotentyp dieses Expression zurück.Returns the node type of this Expression.

Target

Die Zielmarke, zu der von diesem Knoten gewechselt wird.The target label where this node jumps to.

Type

Ruft den statischen Typ des Ausdrucks ab, den dieser Expression darstellt.Gets the static type of the expression that this Expression represents.

Value

Der an das Ziel übergebene Wert oder NULL, wenn das Ziel vom Typ System.Void ist.The value passed to the target, or null if the target is of type System.Void.

Methoden

Accept(ExpressionVisitor)

Sendet an die spezifische Visit-Methode für diesen Knotentyp.Dispatches to the specific visit method for this node type. Beispielsweise ruft MethodCallExpression die Methode VisitMethodCall(MethodCallExpression) auf.For example, MethodCallExpression calls the VisitMethodCall(MethodCallExpression).

(Geerbt von Expression)
Equals(Object)

Bestimmt, ob das angegebene Objekt mit dem aktuellen Objekt identisch ist.Determines whether the specified object is equal to the current object.

(Geerbt von Object)
GetHashCode()

Fungiert als Standardhashfunktion.Serves as the default hash function.

(Geerbt von Object)
GetType()

Ruft den Type der aktuellen Instanz ab.Gets the Type of the current instance.

(Geerbt von Object)
MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.Creates a shallow copy of the current Object.

(Geerbt von Object)
Reduce()

Reduziert diesen Knoten zu einem einfacheren Ausdruck.Reduces this node to a simpler expression. Wenn CanReduce true zurückgibt, sollte ein gültiger Ausdruck zurückgegeben werden.If CanReduce returns true, this should return a valid expression. Diese Methode kann einen anderen Knoten zurückgeben, der selbst reduziert werden muss.This method can return another node which itself must be reduced.

(Geerbt von Expression)
ReduceAndCheck()

Reduziert diesen Knoten zu einem einfacheren Ausdruck.Reduces this node to a simpler expression. Wenn CanReduce true zurückgibt, sollte ein gültiger Ausdruck zurückgegeben werden.If CanReduce returns true, this should return a valid expression. Diese Methode kann einen anderen Knoten zurückgeben, der selbst reduziert werden muss.This method can return another node which itself must be reduced.

(Geerbt von Expression)
ReduceExtensions()

Reduziert den Ausdruck zu einem bekannten Knotentyp (kein Erweiterungsknoten) oder gibt nur den Ausdruck zurück, wenn es sich um einen bereits bekannten Typ handelt.Reduces the expression to a known node type (that is not an Extension node) or just returns the expression if it is already a known type.

(Geerbt von Expression)
ToString()

Gibt eine Textdarstellung des Expression zurück.Returns a textual representation of the Expression.

(Geerbt von Expression)
Update(LabelTarget, Expression)

Erstellt einen neuen Ausdruck, der diesem ähnelt, verwendet jedoch die angegebenen untergeordneten Elemente.Creates a new expression that is like this one, but using the supplied children. Wenn alle untergeordneten Elemente identisch sind, wird dieser Ausdruck zurückgegeben.If all of the children are the same, it will return this expression.

VisitChildren(ExpressionVisitor)

Reduziert den Knoten und ruft dann den Visitor-Delegaten für den reduzierten Ausdruck auf.Reduces the node and then calls the visitor delegate on the reduced expression. Die Methode löst eine Ausnahme aus, wenn der Knoten nicht reduziert werden kann.The method throws an exception if the node is not reducible.

(Geerbt von Expression)

Gilt für: