LambdaExpression LambdaExpression LambdaExpression LambdaExpression Class

Definicja

Opisuje wyrażenie lambda.Describes a lambda expression. To przechwytuje blok kodu, który jest podobny do treści metody .NET.This captures a block of code that is similar to a .NET method body.

public ref class LambdaExpression abstract : System::Linq::Expressions::Expression
public abstract class LambdaExpression : System.Linq.Expressions.Expression
type LambdaExpression = class
    inherit Expression
Public MustInherit Class LambdaExpression
Inherits Expression
Dziedziczenie
LambdaExpressionLambdaExpressionLambdaExpressionLambdaExpression
Pochodne

Przykłady

W poniższym przykładzie pokazano, jak utworzyć wyrażenie reprezentujące wyrażenie lambda, które dodaje 1 do przenoszonego argumentu przy użyciu Lambda metody.The following example demonstrates how to create an expression that represents a lambda expression that adds 1 to the passed argument by using the Lambda method.

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

Uwagi

LambdaExpression Typ reprezentuje wyrażenie lambda w postaci drzewa wyrażenia.The LambdaExpression type represents a lambda expression in the form of an expression tree. Typ, który dziedziczy z LambdaExpression i przechwytuje typ wyrażenia lambda bardziej jawnie, może również służyć do reprezentowania wyrażenia lambda. Expression<TDelegate>The Expression<TDelegate> type, which derives from LambdaExpression and captures the type of the lambda expression more explicitly, can also be used to represent a lambda expression. W czasie wykonywania, węzeł drzewa wyrażenia reprezentujący wyrażenie lambda jest zawsze typu Expression<TDelegate>.At runtime, an expression tree node that represents a lambda expression is always of type Expression<TDelegate>.

Wartość NodeType właściwości LambdaExpression jest. LambdaThe value of the NodeType property of a LambdaExpression is Lambda.

Użyj metod Lambda fabrycznych, aby LambdaExpression utworzyć obiekt.Use the Lambda factory methods to create a LambdaExpression object.

Właściwości

Body Body Body Body

Pobiera treść wyrażenia lambda.Gets the body of the lambda expression.

CanReduce CanReduce CanReduce CanReduce

Wskazuje, że węzeł można zmniejszyć do prostszego węzła.Indicates that the node can be reduced to a simpler node. Jeśli zwraca wartość true, funkcja Zmniejsz () może zostać wywołana w celu utworzenia zredukowanego formularza.If this returns true, Reduce() can be called to produce the reduced form.

(Inherited from Expression)
Name Name Name Name

Pobiera nazwę wyrażenia lambda.Gets the name of the lambda expression.

NodeType NodeType NodeType NodeType

Zwraca typ Expressionwęzła.Returns the node type of this Expression.

Parameters Parameters Parameters Parameters

Pobiera parametry wyrażenia lambda.Gets the parameters of the lambda expression.

ReturnType ReturnType ReturnType ReturnType

Pobiera zwracany typ wyrażenia lambda.Gets the return type of the lambda expression.

TailCall TailCall TailCall TailCall

Pobiera wartość wskazującą, czy wyrażenie lambda zostanie skompilowane z optymalizacją wywołania tail.Gets the value that indicates if the lambda expression will be compiled with the tail call optimization.

Type Type Type Type

Pobiera typ statyczny wyrażenia reprezentowanego przez to Expression wyrażenie.Gets the static type of the expression that this Expression represents.

Metody

Accept(ExpressionVisitor) Accept(ExpressionVisitor) Accept(ExpressionVisitor) Accept(ExpressionVisitor)

Wysyła do określonej metody odwiedzin dla tego typu węzła.Dispatches to the specific visit method for this node type. Na przykład program MethodCallExpression VisitMethodCall(MethodCallExpression)wywołuje.For example, MethodCallExpression calls the VisitMethodCall(MethodCallExpression).

(Inherited from Expression)
Compile() Compile() Compile() Compile()

Tworzy delegata, który reprezentuje wyrażenie lambda.Produces a delegate that represents the lambda expression.

Compile(Boolean) Compile(Boolean) Compile(Boolean) Compile(Boolean)

Tworzy interpretowany lub skompilowany delegat reprezentujący wyrażenie lambda.Produces an interpreted or compiled delegate that represents the lambda expression.

Compile(DebugInfoGenerator) Compile(DebugInfoGenerator) Compile(DebugInfoGenerator) Compile(DebugInfoGenerator)

Tworzy delegata, który reprezentuje wyrażenie lambda.Produces a delegate that represents the lambda expression.

CompileToMethod(MethodBuilder) CompileToMethod(MethodBuilder) CompileToMethod(MethodBuilder) CompileToMethod(MethodBuilder)

Kompiluje wyrażenie lambda do definicji metody.Compiles the lambda into a method definition.

CompileToMethod(MethodBuilder, DebugInfoGenerator) CompileToMethod(MethodBuilder, DebugInfoGenerator) CompileToMethod(MethodBuilder, DebugInfoGenerator) CompileToMethod(MethodBuilder, DebugInfoGenerator)

Kompiluje wyrażenie lambda do definicji metody i informacji o debugowaniu niestandardowym.Compiles the lambda into a method definition and custom debug information.

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Określa, czy określony obiekt jest równy bieżącemu obiektowi.Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Służy jako domyślnej funkcji skrótu.Serves as the default hash function.

(Inherited from Object)
GetType() GetType() GetType() GetType()

Pobiera Type bieżącego wystąpienia.Gets the Type of the current instance.

(Inherited from Object)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Tworzy płytką kopię bieżącego Object.Creates a shallow copy of the current Object.

(Inherited from Object)
Reduce() Reduce() Reduce() Reduce()

Redukuje ten węzeł do prostszego wyrażenia.Reduces this node to a simpler expression. Jeśli redukcja zwróci wartość true, powinna zwracać prawidłowe wyrażenie.If CanReduce returns true, this should return a valid expression. Ta metoda może zwrócić inny węzeł, który musi zostać zmniejszony.This method can return another node which itself must be reduced.

(Inherited from Expression)
ReduceAndCheck() ReduceAndCheck() ReduceAndCheck() ReduceAndCheck()

Redukuje ten węzeł do prostszego wyrażenia.Reduces this node to a simpler expression. Jeśli redukcja zwróci wartość true, powinna zwracać prawidłowe wyrażenie.If CanReduce returns true, this should return a valid expression. Ta metoda może zwrócić inny węzeł, który musi zostać zmniejszony.This method can return another node which itself must be reduced.

(Inherited from Expression)
ReduceExtensions() ReduceExtensions() ReduceExtensions() ReduceExtensions()

Redukuje wyrażenie do znanego typu węzła (który nie jest węzłem rozszerzenia) lub po prostu zwraca wyrażenie, jeśli jest już znanym typem.Reduces the expression to a known node type (that is not an Extension node) or just returns the expression if it is already a known type.

(Inherited from Expression)
ToString() ToString() ToString() ToString()

Zwraca tekstową reprezentację Expression.Returns a textual representation of the Expression.

(Inherited from Expression)
VisitChildren(ExpressionVisitor) VisitChildren(ExpressionVisitor) VisitChildren(ExpressionVisitor) VisitChildren(ExpressionVisitor)

Redukuje węzeł, a następnie wywołuje delegata odwiedzających na zmniejszonym wyrażeniu.Reduces the node and then calls the visitor delegate on the reduced expression. Metoda zgłasza wyjątek, jeśli węzeł nie jest możliwe do zredukowania.The method throws an exception if the node is not reducible.

(Inherited from Expression)

Dotyczy