LabelTarget Class
[ This article is for Windows Phone 8 developers. If you’re developing for Windows 10, see the latest documentation. ]
Used to represent the target of a GotoExpression.
Assembly: System.Core (in System.Core.dll)
The LabelTarget type exposes the following members.
| Name | Description | |
|---|---|---|
![]() | Equals(Object) | Determines whether the specified Object is equal to the current Object. (Inherited from Object.) |
![]() | Finalize | Allows an object to try to free resources and perform other cleanup operations before the Object is reclaimed by garbage collection. (Inherited from Object.) |
![]() | GetHashCode | Serves as a hash function for a particular type. (Inherited from Object.) |
![]() | GetType | Gets the Type of the current instance. (Inherited from Object.) |
![]() | MemberwiseClone | Creates a shallow copy of the current Object. (Inherited from Object.) |
![]() | ToString | Returns a String that represents the current Object. (Overrides Object.ToString().) |
The following example demonstrates how to create an expression that contains a LabelTarget object by using the Label method.
// Add the following directive to the file: // using System.Linq.Expressions; // A label expression of the void type that is the target for Expression.Return(). LabelTarget returnTarget = Expression.Label(); // This block contains a GotoExpression that represents a return statement with no value. // 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("Return")), Expression.Return(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: // // Return // "Other Work" is not printed because // the Return expression transfers execution from Expression.Return(returnTarget) // to Expression.Label(returnTarget).
Show:


