Note
Access to this page requires authorization. You can try signing in or .
Access to this page requires authorization. You can try .
LambdaExpression Class
Definition
- Namespace:
- System.Linq.Expressions
- Assemblies:
- System.Core.dll, System.Linq.Expressions.dll
- Assemblies:
- netstandard.dll, System.Linq.Expressions.dll
- Assembly:
- System.Linq.Expressions.dll
- Assembly:
- System.Core.dll
- Assembly:
- netstandard.dll
- Source:
- LambdaExpression.cs
- Source:
- LambdaExpression.cs
- Source:
- LambdaExpression.cs
- Source:
- LambdaExpression.cs
- Source:
- LambdaExpression.cs
Important
Some information relates to prerelease product that may be substantially modified before itβs released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Describes a lambda expression. This captures a block of code that is similar to a .NET method body.
public ref class LambdaExpression abstract : System::Linq::Expressions::Expression
public ref class LambdaExpression : System::Linq::Expressions::Expression
public abstract class LambdaExpression : System.Linq.Expressions.Expression
public class LambdaExpression : System.Linq.Expressions.Expression
type LambdaExpression = class
inherit Expression
Public MustInherit Class LambdaExpression
Inherits Expression
Public Class LambdaExpression
Inherits Expression
- Inheritance
- Derived
Examples
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.
Console.WriteLine(lambdaExpr);
// Compile and run the lamda expression.
// The value of the parameter is 1.
Console.WriteLine(lambdaExpr.Compile().DynamicInvoke(1));
// This code example produces the following output:
//
// arg => (arg +1)
// 2
' Add the following directive to your file:
' Imports System.Linq.Expressions
' A parameter for the lambda expression.
Dim paramExpr As ParameterExpression = Expression.Parameter(GetType(Integer), "arg")
' This expression represents a lambda expression
' that adds 1 to the parameter value.
Dim lambdaExpr As LambdaExpression = Expression.Lambda(
Expression.Add(
paramExpr,
Expression.Constant(1)
),
New List(Of ParameterExpression)() From {paramExpr}
)
' Print out the expression.
Console.WriteLine(lambdaExpr)
' Compile and run the lamda expression.
' The value of the parameter is 1.
Console.WriteLine(lambdaExpr.Compile().DynamicInvoke(1))
' This code example produces the following output:
'
' arg => (arg +1)
' 2
Remarks
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.
Properties
| 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. |
| NodeType |
Gets the node type of this Expression. (Inherited from Expression) |
| 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. |
| Type |
Gets the static type of the expression that this Expression represents. (Inherited from Expression) |
Methods
| Name | Description |
|---|---|
| Accept(ExpressionVisitor) |
Dispatches to the specific visit method for this node type. For example, MethodCallExpression calls the VisitMethodCall(MethodCallExpression). (Inherited from Expression) |
| Compile() |
Produces a delegate that represents the lambda expression. |
| Compile(Boolean) |
Produces an interpreted or compiled delegate that represents the lambda expression. |
| Compile(DebugInfoGenerator) |
Produces a delegate that represents the lambda expression. |
| CompileToMethod(MethodBuilder, DebugInfoGenerator) |
Compiles the lambda into a method definition and custom debug information. |
| CompileToMethod(MethodBuilder) |
Compiles the lambda into a method definition. |
| Equals(Object) |
Determines whether the specified object is equal to the current object. (Inherited from Object) |
| GetHashCode() |
Serves as the default hash function. (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 that 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 that 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(ExpressionVisitor) |
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) |
Applies to
Feedback
Was this page helpful?
