LambdaExpression Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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
- 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) |