GotoExpression 类 
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
表示无条件跳转。 这包括返回语句,break 和 continue 语句以及其他跳转。
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
		- 继承
 
示例
以下示例演示如何使用 Goto 方法创建包含 GotoExpression 对象的表达式。
// 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).
	属性
| CanReduce | 
		 指示可将节点简化为更简单的节点。 如果返回 true,则可以调用 Reduce() 以生成简化形式。 (继承自 Expression) | 
        	
| Kind | 
		 “转到”表达式的种类。 仅供参考。  | 
        	
| NodeType | 
		 返回此 Expression 的节点类型。  | 
        	
| Target | 
		 此节点跳转到的目标标签。  | 
        	
| Type | 
		 获取此 Expression 表示的表达式的静态类型。  | 
        	
| Value | 
		 传递到目标的值或 null(如果目标类型为 System.Void)。  | 
        	
方法
| Accept(ExpressionVisitor) | 
		 调度到此节点类型的特定 Visit 方法。 例如,MethodCallExpression 调用 VisitMethodCall(MethodCallExpression)。 (继承自 Expression) | 
        	
| Equals(Object) | 
		 确定指定对象是否等于当前对象。 (继承自 Object) | 
        	
| GetHashCode() | 
		 作为默认哈希函数。 (继承自 Object) | 
        	
| GetType() | 
		 获取当前实例的 Type。 (继承自 Object) | 
        	
| MemberwiseClone() | 
		 创建当前 Object 的浅表副本。 (继承自 Object) | 
        	
| Reduce() | 
		 将此节点简化为更简单的表达式。 如果 CanReduce 返回 true,则它应返回有效的表达式。 此方法可以返回本身必须简化的另一个节点。 (继承自 Expression) | 
        	
| ReduceAndCheck() | 
		 将此节点简化为更简单的表达式。 如果 CanReduce 返回 true,则它应返回有效的表达式。 此方法可以返回本身必须简化的另一个节点。 (继承自 Expression) | 
        	
| ReduceExtensions() | 
		 将表达式简化为已知节点类型(即非 Extension 节点)或仅在此类型为已知类型时返回表达式。 (继承自 Expression) | 
        	
| ToString() | 
		 返回 Expression 的的文本化表示形式。 (继承自 Expression) | 
        	
| Update(LabelTarget, Expression) | 
		 创建一个新的表达式,它类似于此表达式,但使用所提供的子级。 如果所有子级均相同,它将返回此表达式。  | 
        	
| VisitChildren(ExpressionVisitor) | 
		 简化节点,然后对简化的表达式调用访问者委托。 该方法在节点不可简化时引发异常。 (继承自 Expression) |