LambdaExpression Osztály
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
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
- 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 |
| 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) |