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