Windows apps
Collapse the table of content
Expand the table of content

LambdaExpression Class

 
System_CAPS_noteNote

The .NET API Reference documentation has a new home. Visit the .NET API Browser on docs.microsoft.com to see the new experience.

Describes a lambda expression. This captures a block of code that is similar to a .NET method body.

Namespace:   System.Linq.Expressions
Assembly:  System.Core (in System.Core.dll)

System.Object
  System.Linq.Expressions.Expression
    System.Linq.Expressions.LambdaExpression
      System.Linq.Expressions.Expression<TDelegate>

public abstract class LambdaExpression : Expression

NameDescription
System_CAPS_pubpropertyBody

Gets the body of the lambda expression.

System_CAPS_pubpropertyCanReduce

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.)

System_CAPS_pubpropertyName

Gets the name of the lambda expression.

System_CAPS_pubpropertyNodeType

Returns the node type of this Expression.(Overrides Expression.NodeType.)

System_CAPS_pubpropertyParameters

Gets the parameters of the lambda expression.

System_CAPS_pubpropertyReturnType

Gets the return type of the lambda expression.

System_CAPS_pubpropertyTailCall

Gets the value that indicates if the lambda expression will be compiled with the tail call optimization.

System_CAPS_pubpropertyType

Gets the static type of the expression that this Expression represents.(Overrides Expression.Type.)

NameDescription
System_CAPS_protmethodAccept(ExpressionVisitor)

Dispatches to the specific visit method for this node type. For example, MethodCallExpression calls the VisitMethodCall.(Inherited from Expression.)

System_CAPS_pubmethodCompile()

Produces a delegate that represents the lambda expression.

System_CAPS_pubmethodCompile(Boolean)

Produces an interpreted or compiled delegate that represents the lambda expression.

System_CAPS_pubmethodCompile(DebugInfoGenerator)

Produces a delegate that represents the lambda expression.

System_CAPS_pubmethodCompileToMethod(MethodBuilder)

Compiles the lambda into a method definition.

System_CAPS_pubmethodCompileToMethod(MethodBuilder, DebugInfoGenerator)

Compiles the lambda into a method definition and custom debug information.

System_CAPS_pubmethodEquals(Object)

Determines whether the specified object is equal to the current object.(Inherited from Object.)

System_CAPS_protmethodFinalize()

Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.(Inherited from Object.)

System_CAPS_pubmethodGetHashCode()

Serves as the default hash function. (Inherited from Object.)

System_CAPS_pubmethodGetType()

Gets the Type of the current instance.(Inherited from Object.)

System_CAPS_protmethodMemberwiseClone()

Creates a shallow copy of the current Object.(Inherited from Object.)

System_CAPS_pubmethodReduce()

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.)

System_CAPS_pubmethodReduceAndCheck()

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.)

System_CAPS_pubmethodReduceExtensions()

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.)

System_CAPS_pubmethodToString()

Returns a textual representation of the Expression.(Inherited from Expression.)

System_CAPS_protmethodVisitChildren(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.)

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.
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

Universal Windows Platform
Available since 8
.NET Framework
Available since 3.5
Portable Class Library
Supported in: portable .NET platforms
Silverlight
Available since 2.0
Windows Phone Silverlight
Available since 7.0
Windows Phone
Available since 8.1

Any public static ( Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Return to top
Show:
© 2017 Microsoft