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 Lambda pomocí 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ýrazů. Typ Expression<TDelegate> , který je odvozen z LambdaExpression výrazu lambda a zachycuje ho explicitněji, lze použít také k reprezentaci 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 objektu LambdaExpression je Lambda.

K vytvoření objektu Lambda použijte metody pro vytváření LambdaExpression .

Vlastnosti

Body

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

CanReduce

Označuje, že uzel lze omezit na jednodušší uzel. Pokud vrátí hodnotu true, lze voláním metody Reduce() vytvořit zmenšenou formu.

(Zděděno od Expression)
Name

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

NodeType

Vrátí typ uzlu tohoto Expressiontypu .

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 lambda výraz 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

Accept(ExpressionVisitor)

Odešle metodu visit pro tento typ uzlu. MethodCallExpression Například zavolá VisitMethodCall(MethodCallExpression).

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

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

Compile(Boolean)

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

Compile(DebugInfoGenerator)

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

CompileToMethod(MethodBuilder)

Zkompiluje lambda do definice metody.

CompileToMethod(MethodBuilder, DebugInfoGenerator)

Zkompiluje lambda do definice metody a vlastní informace o ladění.

Equals(Object)

Určí, zda se zadaný objekt rovná aktuálnímu objektu.

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

Slouží jako výchozí hashovací funkce.

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

Type Získá z aktuální instance.

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

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

(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ý sám o sobě musí být snížen.

(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ý sám o sobě musí být snížen.

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

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

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

Vrátí textovou reprezentaci Expressionhodnoty .

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

Zmenší uzel a pak zavolá delegáta návštěvníka na výrazu reduce. Metoda vyvolá výjimku, pokud uzel není opětovně použitelný.

(Zděděno od Expression)

Platí pro