Sdílet prostřednictvím


LambdaExpression Třída

Definice

Popisuje výraz lambda. Tím se zachytí blok kódu, který se podobá textu metody .NET.

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
Dědičnost
LambdaExpression
Odvozené

Příklady

Následující příklad ukazuje, jak vytvořit výraz, který představuje výraz lambda, který přidá 1 do předaného argumentu pomocí Lambda metody.

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

Poznámky

Typ LambdaExpression představuje výraz lambda ve formě stromu výrazu. Typ Expression<TDelegate> , který je odvozen od LambdaExpression a zachycuje typ výrazu lambda explicitněji, lze také použít k vyjádření výrazu lambda. Za běhu je uzel stromu výrazu, který představuje výraz lambda, vždy typu Expression<TDelegate>.

Hodnota NodeType vlastnosti je LambdaExpressionLambda.

K vytvoření objektu LambdaLambdaExpression použijte metody továrny.

Vlastnosti

Name Description
Body

Získá tělo výrazu lambda.

CanReduce

Označuje, že uzel lze snížit na jednodušší uzel. Pokud se vrátí hodnota true, lze volat Reduce() k vytvoření snížené formy.

(Zděděno od Expression)
Name

Získá název výrazu lambda.

NodeType

Vrátí typ uzlu tohoto Expression.

NodeType

Získá typ uzlu tohoto Expression.

(Zděděno od Expression)
Parameters

Získá parametry výrazu lambda.

ReturnType

Získá návratový typ výrazu lambda.

TailCall

Získá hodnotu, která označuje, zda výraz lambda bude zkompilován s optimalizací koncového volání.

Type

Získá statický typ výrazu, který představuje Expression .

Type

Získá statický typ výrazu, který představuje Expression .

(Zděděno od Expression)

Metody

Name Description
Accept(ExpressionVisitor)

Odešle konkrétní metodu návštěvy pro tento typ uzlu. MethodCallExpression Například volá .VisitMethodCall(MethodCallExpression)

(Zděděno od Expression)
Compile()

Vytvoří delegáta, který představuje výraz lambda.

Compile(Boolean)

Vytvoří interpretovaný nebo zkompilovaný delegát, který představuje výraz lambda.

Compile(DebugInfoGenerator)

Vytvoří delegáta, který představuje výraz lambda.

CompileToMethod(MethodBuilder, DebugInfoGenerator)

Zkompiluje lambda do definice metody a vlastní ladicí informace.

CompileToMethod(MethodBuilder)

Zkompiluje lambda do definice metody.

Equals(Object)

Určuje, zda je zadaný objekt roven aktuálnímu objektu.

(Zděděno od Object)
GetHashCode()

Slouží jako výchozí funkce hash.

(Zděděno od Object)
GetType()

Type Získá aktuální instanci.

(Zděděno od Object)
MemberwiseClone()

Vytvoří mělkou kopii aktuálního Object.

(Zděděno od Object)
Reduce()

Zmenší tento uzel na jednodušší výraz. Pokud CanReduce vrátí hodnotu true, měl by vrátit platný výraz. Tato metoda může vrátit jiný uzel, který se musí snížit.

(Zděděno od Expression)
ReduceAndCheck()

Zmenší tento uzel na jednodušší výraz. Pokud CanReduce vrátí hodnotu true, měl by vrátit platný výraz. Tato metoda může vrátit jiný uzel, který se musí snížit.

(Zděděno od Expression)
ReduceExtensions()

Zmenšuje výraz na známý typ uzlu (který není uzel rozšíření), nebo pouze vrátí výraz, pokud je již známým typem.

(Zděděno od Expression)
ToString()

Vrátí textovou reprezentaci Expression.

(Zděděno od Expression)
VisitChildren(ExpressionVisitor)

Zmenší uzel a potom zavolá delegáta návštěvníka na zkrácený výraz. Metoda vyvolá výjimku, pokud uzel není reducible.

(Zděděno od Expression)

Platí pro