LambdaExpression Osztály

Definíció

Lambda-kifejezést ír le. Ez egy .NET metódustörzshöz hasonló kódblokkot rögzít.

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
Öröklődés
LambdaExpression
Származtatott

Példák

Az alábbi példa bemutatja, hogyan hozhat létre olyan kifejezést, amely egy lambda kifejezést jelöl, amely 1-et ad hozzá az átadott argumentumhoz a Lambda metódus használatával.

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

Megjegyzések

A LambdaExpression típus egy lambda kifejezést jelöl kifejezésfa formájában. Az Expression<TDelegate> a típus, amely a lambda kifejezésből származik LambdaExpression , és pontosabban rögzíti a típust, a lambda kifejezés ábrázolására is használható. Futásidőben a lambda kifejezést jelképező kifejezésfacsomópont mindig típus.Expression<TDelegate>

Az a NodeType tulajdonság értékeLambdaExpression.Lambda

Lambda A gyári metódusok használatával hozzon létre egy objektumotLambdaExpression.

Tulajdonságok

Name Description
Body

Lekéri a lambda kifejezés törzsét.

CanReduce

Azt jelzi, hogy a csomópont egyszerűbb csomópontra csökkenthető. Ha ez igaz értéket ad vissza, a Csökkentés() meghívható a csökkentett űrlap létrehozásához.

(Öröklődés forrása Expression)
Name

Lekéri a lambda kifejezés nevét.

NodeType

Ennek a csomóponttípusnak Expressiona értékét adja vissza.

NodeType

Lekéri ennek a csomóponttípusnak a Expressiontípusát.

(Öröklődés forrása Expression)
Parameters

Lekéri a lambda kifejezés paramétereit.

ReturnType

Lekéri a lambda kifejezés visszatérési típusát.

TailCall

Lekéri azt az értéket, amely jelzi, hogy a lambda kifejezés a tail call optimization használatával lesz-e lefordítva.

Type

Lekéri az ez Expression által képviselt kifejezés statikus típusát.

Type

Lekéri az ez Expression által képviselt kifejezés statikus típusát.

(Öröklődés forrása Expression)

Metódusok

Name Description
Accept(ExpressionVisitor)

Az ehhez a csomóponttípushoz tartozó adott látogatási módszerhez küldi el a küldéseket. Meghívja például MethodCallExpression a VisitMethodCall(MethodCallExpression).

(Öröklődés forrása Expression)
Compile()

Létrehoz egy delegáltat, amely a lambda kifejezést jelöli.

Compile(Boolean)

Létrehoz egy értelmezett vagy lefordított delegáltat, amely a lambda kifejezést jelöli.

Compile(DebugInfoGenerator)

Létrehoz egy delegáltat, amely a lambda kifejezést jelöli.

CompileToMethod(MethodBuilder, DebugInfoGenerator)

A lambdát metódusdefinícióvá és egyéni hibakeresési információkká állítja össze.

CompileToMethod(MethodBuilder)

A lambda fordítása metódusdefinícióvá.

Equals(Object)

Meghatározza, hogy a megadott objektum egyenlő-e az aktuális objektummal.

(Öröklődés forrása Object)
GetHashCode()

Ez az alapértelmezett kivonatoló függvény.

(Öröklődés forrása Object)
GetType()

Lekéri az Type aktuális példányt.

(Öröklődés forrása Object)
MemberwiseClone()

Az aktuális Objectpéldány sekély másolatát hozza létre.

(Öröklődés forrása Object)
Reduce()

Egyszerűbb kifejezésre csökkenti ezt a csomópontot. Ha a CanReduce igaz értéket ad vissza, akkor érvényes kifejezést kell visszaadnia. Ez a módszer egy másik csomópontot is visszaadhat, amelyet csökkenteni kell.

(Öröklődés forrása Expression)
ReduceAndCheck()

Egyszerűbb kifejezésre csökkenti ezt a csomópontot. Ha a CanReduce igaz értéket ad vissza, akkor érvényes kifejezést kell visszaadnia. Ez a módszer egy másik csomópontot is visszaadhat, amelyet csökkenteni kell.

(Öröklődés forrása Expression)
ReduceExtensions()

Csökkenti a kifejezést egy ismert csomóponttípusra (amely nem bővítménycsomópont), vagy csak visszaadja a kifejezést, ha már ismert típus.

(Öröklődés forrása Expression)
ToString()

A /> szöveges ábrázolását adja vissza.

(Öröklődés forrása Expression)
VisitChildren(ExpressionVisitor)

Csökkenti a csomópontot, majd meghívja a látogató meghatalmazottat a csökkentett kifejezésre. A metódus kivételt eredményez, ha a csomópont nem vonható vissza.

(Öröklődés forrása Expression)

A következőre érvényes: