LambdaExpression Class
[ This article is for Windows Phone 8 developers. If you’re developing for Windows 10, see the latest documentation. ]
Describes a lambda expression. This captures a block of code that is similar to a .NET method body.
System.Linq.Expressions.Expression
System.Linq.Expressions.LambdaExpression
System.Linq.Expressions.Expression<TDelegate>
Assembly: System.Core (in System.Core.dll)
The LambdaExpression type exposes the following members.
| Name | Description | |
|---|---|---|
![]() | Body | Gets the body of the lambda expression. |
![]() | CanReduce | Indicates that the node can be reduced to a simpler node. If this returns true, Reduce() can be called to produce the reduced form. (Inherited from Expression.) |
![]() | Name | Gets the name of the lambda expression. |
![]() | NodeType | Returns the node type of this Expression. (Overrides Expression.NodeType.) |
![]() | Parameters | Gets the parameters of the lambda expression. |
![]() | ReturnType | Gets the return type of the lambda expression. |
![]() | TailCall | Gets the value that indicates if the lambda expression will be compiled with the tail call optimization. |
![]() | Type | Gets the static type of the expression that this Expression represents. (Overrides Expression.Type.) |
| Name | Description | |
|---|---|---|
![]() | Accept | Dispatches to the specific visit method for this node type. For example, MethodCallExpression calls the VisitMethodCall. (Inherited from Expression.) |
![]() | Compile | Produces a delegate that represents the lambda expression. |
![]() | 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.) |
![]() | Reduce | Reduces this node to a simpler expression. If CanReduce returns true, this should return a valid expression. This method can return another node which itself must be reduced. (Inherited from Expression.) |
![]() | ReduceAndCheck | Reduces this node to a simpler expression. If CanReduce returns true, this should return a valid expression. This method can return another node which itself must be reduced. (Inherited from Expression.) |
![]() | ReduceExtensions | 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. (Inherited from Expression.) |
![]() | ToString | Returns a textual representation of the Expression. (Inherited from Expression.) |
![]() | VisitChildren | Reduces the node and then calls the visitor delegate on the reduced expression. The method throws an exception if the node is not reducible. (Inherited from Expression.) |
The LambdaExpression type represents a lambda expression in the form of an expression tree. The Expression<TDelegate> type, which derives from LambdaExpression and captures the type of the lambda expression more explicitly, can also be used to represent a lambda expression. At runtime, an expression tree node that represents a lambda expression is always of type Expression<TDelegate>.
The value of the NodeType property of a LambdaExpression is Lambda.
Use the Lambda factory methods to create a LambdaExpression object.
The following example demonstrates how to create an expression that represents a lambda expression that adds 1 to the passed argument by using the Lambda method.
// Add the following directive to your file: // using System.Linq.Expressions; // A parameter for the lambda expression. ParameterExpression paramExpr = Expression.Parameter(typeof(int), "arg"); // This expression represents a lambda expression // that adds 1 to the parameter value. LambdaExpression lambdaExpr = Expression.Lambda( Expression.Add( paramExpr, Expression.Constant(1) ), new List<ParameterExpression>() { paramExpr } ); // Print out the expression. outputBlock.Text += lambdaExpr + "\n"; // Compile and run the lamda expression. // The value of the parameter is 1. outputBlock.Text += lambdaExpr.Compile().DynamicInvoke(1) + "\n"; // This code example produces the following output: // // arg => (arg +1) // 2


