LambdaExpression Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Descrive un'espressione lambda. Acquisisce un blocco di codice simile al corpo di un metodo .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
- Ereditarietà
- Derivato
Esempio
Nell'esempio seguente viene illustrato come creare un'espressione che rappresenta un'espressione lambda che aggiunge 1 all'argomento passato usando il Lambda metodo .
// 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
Commenti
Il LambdaExpression tipo rappresenta un'espressione lambda sotto forma di albero delle espressioni. Il Expression<TDelegate> tipo, che deriva da LambdaExpression e acquisisce il tipo dell'espressione lambda in modo più esplicito, può essere usato anche per rappresentare un'espressione lambda. In fase di esecuzione, un nodo dell'albero delle espressioni che rappresenta un'espressione lambda è sempre di tipo Expression<TDelegate>.
Il valore della NodeType proprietà di un LambdaExpression oggetto è Lambda.
Usare i Lambda metodi factory per creare un LambdaExpression oggetto .
Proprietà
Body |
Ottiene il corpo dell'espressione lambda. |
CanReduce |
Indica che il nodo può essere ridotto a un nodo più semplice. Se restituisce true, è possibile chiamare Reduce() per generare la forma ridotta. (Ereditato da Expression) |
Name |
Ottiene il nome dell'espressione lambda. |
NodeType |
Restituisce il tipo di nodo di Expression. |
NodeType |
Ottiene il tipo di nodo di Expression. (Ereditato da Expression) |
Parameters |
Ottiene i parametri dell'espressione lambda. |
ReturnType |
Ottiene il tipo di ritorno dell'espressione lambda. |
TailCall |
Ottiene il valore che indica se l'espressione lambda sarà compilata con l'ottimizzazione della chiamata tail. |
Type |
Ottiene il tipo statico dell'espressione rappresentata da Expression. |
Type |
Ottiene il tipo statico dell'espressione rappresentata da Expression. (Ereditato da Expression) |
Metodi
Accept(ExpressionVisitor) |
Invia al metodo Visit specifico per questo tipo di nodo. Ad esempio, MethodCallExpression chiama VisitMethodCall(MethodCallExpression). (Ereditato da Expression) |
Compile() |
Produce un delegato che rappresenta l'espressione lambda. |
Compile(Boolean) |
Produce un delegato interpretato o compilato che rappresenta l'espressione lambda. |
Compile(DebugInfoGenerator) |
Produce un delegato che rappresenta l'espressione lambda. |
CompileToMethod(MethodBuilder) |
Compila il lambda in una definizione del metodo. |
CompileToMethod(MethodBuilder, DebugInfoGenerator) |
Compila il lambda in una definizione del metodo e informazioni di debug personalizzate. |
Equals(Object) |
Determina se l'oggetto specificato è uguale all'oggetto corrente. (Ereditato da Object) |
GetHashCode() |
Funge da funzione hash predefinita. (Ereditato da Object) |
GetType() |
Ottiene l'oggetto Type dell'istanza corrente. (Ereditato da Object) |
MemberwiseClone() |
Crea una copia superficiale dell'oggetto Object corrente. (Ereditato da Object) |
Reduce() |
Riduce questo nodo a un'espressione più semplice. Se CanReduce restituisce true, deve essere restituita un'espressione valida. Questo metodo può restituire un altro nodo che deve essere a sua volta ridotto. (Ereditato da Expression) |
ReduceAndCheck() |
Riduce questo nodo a un'espressione più semplice. Se CanReduce restituisce true, deve essere restituita un'espressione valida. Questo metodo può restituire un altro nodo che deve essere a sua volta ridotto. (Ereditato da Expression) |
ReduceExtensions() |
Riduce l'espressione a un tipo di nodo noto (diverso da un nodo di estensione) o restituisce solo l'espressione se è già un tipo noto. (Ereditato da Expression) |
ToString() |
Restituisce una rappresentazione testuale di Expression. (Ereditato da Expression) |
VisitChildren(ExpressionVisitor) |
Riduce il nodo, quindi chiama il delegato del visitatore sull'espressione ridotta. Se il nodo non è riducibile, il metodo genera un'eccezione. (Ereditato da Expression) |