GotoExpression Klas
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Vertegenwoordigt een onvoorwaardelijke sprong. Dit omvat retourinstructies, onderbrekings- en continue instructies en andere sprongen.
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
- Overname
Voorbeelden
In het volgende voorbeeld ziet u hoe u een expressie maakt die een GotoExpression object bevat met behulp van de Goto methode.
// 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).
Eigenschappen
| Name | Description |
|---|---|
| CanReduce |
Geeft aan dat het knooppunt kan worden gereduceerd tot een eenvoudiger knooppunt. Als dit waar retourneert, kan Reduce() worden aangeroepen om de gereduceerde vorm te produceren. (Overgenomen van Expression) |
| Kind |
Het type 'ga naar'-expressie. Dient alleen informatiedoeleinden. |
| NodeType |
Retourneert het knooppunttype van dit Expression. |
| Target |
Het doellabel waar dit knooppunt naartoe springt. |
| Type |
Hiermee haalt u het statische type van de expressie op die deze Expression vertegenwoordigt. |
| Value |
De waarde die is doorgegeven aan het doel of null als het doel van het type System.Void is. |
Methoden
| Name | Description |
|---|---|
| Accept(ExpressionVisitor) |
Verzendt naar de specifieke bezoekmethode voor dit knooppunttype. Roept bijvoorbeeld MethodCallExpression de VisitMethodCall(MethodCallExpression). (Overgenomen van Expression) |
| Equals(Object) |
Bepaalt of het opgegeven object gelijk is aan het huidige object. (Overgenomen van Object) |
| GetHashCode() |
Fungeert als de standaardhashfunctie. (Overgenomen van Object) |
| GetType() |
Hiermee haalt u de Type huidige instantie op. (Overgenomen van Object) |
| MemberwiseClone() |
Hiermee maakt u een ondiepe kopie van de huidige Object. (Overgenomen van Object) |
| Reduce() |
Vermindert dit knooppunt tot een eenvoudigere expressie. Als CanReduce waar retourneert, moet dit een geldige expressie retourneren. Deze methode kan een ander knooppunt retourneren dat zelf moet worden verminderd. (Overgenomen van Expression) |
| ReduceAndCheck() |
Vermindert dit knooppunt tot een eenvoudigere expressie. Als CanReduce waar retourneert, moet dit een geldige expressie retourneren. Deze methode kan een ander knooppunt retourneren dat zelf moet worden verminderd. (Overgenomen van Expression) |
| ReduceExtensions() |
Vermindert de expressie tot een bekend knooppunttype (dat geen extensieknooppunt is) of retourneert alleen de expressie als het al een bekend type is. (Overgenomen van Expression) |
| ToString() |
Retourneert een tekstuele weergave van de Expression. (Overgenomen van Expression) |
| Update(LabelTarget, Expression) |
Hiermee maakt u een nieuwe expressie die er als volgt uitziet, maar met behulp van de opgegeven onderliggende elementen. Als alle onderliggende items hetzelfde zijn, wordt deze expressie geretourneerd. |
| VisitChildren(ExpressionVisitor) |
Vermindert het knooppunt en roept vervolgens de gedelegeerde van de bezoeker aan op de gereduceerde expressie. De methode genereert een uitzondering als het knooppunt niet kan worden herleid. (Overgenomen van Expression) |