LambdaExpression Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Opisuje wyrażenie lambda. Spowoduje to przechwycenie bloku kodu podobnego do treści metody platformy .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
- Dziedziczenie
- Pochodne
Przykłady
W poniższym przykładzie pokazano, jak utworzyć wyrażenie reprezentujące wyrażenie lambda, które dodaje 1 do przekazanego argumentu Lambda przy użyciu 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
Uwagi
Typ LambdaExpression reprezentuje wyrażenie lambda w postaci drzewa wyrażeń. Typ Expression<TDelegate> , który pochodzi z LambdaExpression i przechwytuje typ wyrażenia lambda bardziej jawnie, może również służyć do reprezentowania wyrażenia lambda. W czasie wykonywania węzeł drzewa wyrażeń reprezentujący wyrażenie lambda jest zawsze typu Expression<TDelegate>.
Wartość NodeType właściwości a LambdaExpression to Lambda.
Użyj metod fabrycznych Lambda , aby utworzyć LambdaExpression obiekt.
Właściwości
Body |
Pobiera treść wyrażenia lambda. |
CanReduce |
Wskazuje, że węzeł można zmniejszyć do prostszego węzła. Jeśli zwraca wartość true, funkcja Reduce() może zostać wywołana w celu utworzenia skróconej postaci. (Odziedziczone po Expression) |
Name |
Pobiera nazwę wyrażenia lambda. |
NodeType |
Zwraca typ węzła tego Expressionelementu . |
NodeType |
Pobiera typ węzła tego Expressionelementu . (Odziedziczone po Expression) |
Parameters |
Pobiera parametry wyrażenia lambda. |
ReturnType |
Pobiera zwracany typ wyrażenia lambda. |
TailCall |
Pobiera wartość wskazującą, czy wyrażenie lambda zostanie skompilowane przy użyciu optymalizacji wywołań końcowych. |
Type |
Pobiera statyczny typ wyrażenia, które reprezentuje Expression . |
Type |
Pobiera statyczny typ wyrażenia, które reprezentuje Expression . (Odziedziczone po Expression) |
Metody
Accept(ExpressionVisitor) |
Wysyła do określonej metody visit dla tego typu węzła. Na przykład MethodCallExpression wywołuje metodę VisitMethodCall(MethodCallExpression). (Odziedziczone po Expression) |
Compile() |
Tworzy delegata reprezentującego wyrażenie lambda. |
Compile(Boolean) |
Tworzy zinterpretowany lub skompilowany delegat reprezentujący wyrażenie lambda. |
Compile(DebugInfoGenerator) |
Tworzy delegata reprezentującego wyrażenie lambda. |
CompileToMethod(MethodBuilder) |
Kompiluje lambda do definicji metody. |
CompileToMethod(MethodBuilder, DebugInfoGenerator) |
Kompiluje lambda do definicji metody i niestandardowych informacji debugowania. |
Equals(Object) |
Określa, czy dany obiekt jest taki sam, jak bieżący obiekt. (Odziedziczone po Object) |
GetHashCode() |
Służy jako domyślna funkcja skrótu. (Odziedziczone po Object) |
GetType() |
Type Pobiera wartość bieżącego wystąpienia. (Odziedziczone po Object) |
MemberwiseClone() |
Tworzy płytkią kopię bieżącego Objectelementu . (Odziedziczone po Object) |
Reduce() |
Zmniejsza ten węzeł do prostszego wyrażenia. Jeśli funkcja CanReduce zwróci wartość true, powinno to zwrócić prawidłowe wyrażenie. Ta metoda może zwrócić inny węzeł, który należy zmniejszyć. (Odziedziczone po Expression) |
ReduceAndCheck() |
Zmniejsza ten węzeł do prostszego wyrażenia. Jeśli funkcja CanReduce zwróci wartość true, powinno to zwrócić prawidłowe wyrażenie. Ta metoda może zwrócić inny węzeł, który należy zmniejszyć. (Odziedziczone po Expression) |
ReduceExtensions() |
Zmniejsza 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 to już znany typ. (Odziedziczone po Expression) |
ToString() |
Zwraca tekstową reprezentację obiektu Expression. (Odziedziczone po Expression) |
VisitChildren(ExpressionVisitor) |
Zmniejsza węzeł, a następnie wywołuje delegata odwiedzających w wyrażeniu zredukowanym. Metoda zgłasza wyjątek, jeśli węzeł nie jest reducible. (Odziedziczone po Expression) |