LambdaExpression Klass
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Beskriver ett lambda-uttryck. Detta samlar in ett kodblock som liknar en .NET metodtext.
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
- Arv
- Härledda
Exempel
I följande exempel visas hur du skapar ett uttryck som representerar ett lambda-uttryck som lägger till 1 i det skickade argumentet med hjälp Lambda av metoden.
// 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
Kommentarer
Typen LambdaExpression representerar ett lambda-uttryck i form av ett uttrycksträd. Typen Expression<TDelegate> , som härleds från LambdaExpression och avbildar typen av lambda-uttrycket mer explicit, kan också användas för att representera ett lambda-uttryck. Vid körning är en uttrycksträdnod som representerar ett lambda-uttryck alltid av typen Expression<TDelegate>.
Värdet för NodeType egenskapen för en LambdaExpression är Lambda.
Använd fabriksmetoderna Lambda för att skapa ett LambdaExpression objekt.
Egenskaper
| Name | Description |
|---|---|
| Body |
Hämtar lambda-uttryckets kropp. |
| CanReduce |
Anger att noden kan reduceras till en enklare nod. Om detta returnerar true kan Reduce() anropas för att skapa det reducerade formuläret. (Ärvd från Expression) |
| Name |
Hämtar namnet på lambda-uttrycket. |
| NodeType |
Returnerar nodtypen för den här Expression. |
| NodeType |
Hämtar nodtypen för den här Expression. (Ärvd från Expression) |
| Parameters |
Hämtar parametrarna för lambda-uttrycket. |
| ReturnType |
Hämtar returtypen för lambda-uttrycket. |
| TailCall |
Hämtar det värde som anger om lambda-uttrycket ska kompileras med optimering av tail-anrop. |
| Type |
Hämtar den statiska typen av uttryck som detta Expression representerar. |
| Type |
Hämtar den statiska typen av uttryck som detta Expression representerar. (Ärvd från Expression) |
Metoder
| Name | Description |
|---|---|
| Accept(ExpressionVisitor) |
Skickar till den specifika besöksmetoden för den här nodtypen. Anropar MethodCallExpressionVisitMethodCall(MethodCallExpression)till exempel . (Ärvd från Expression) |
| Compile() |
Skapar ett ombud som representerar lambda-uttrycket. |
| Compile(Boolean) |
Skapar ett tolkat eller kompilerat ombud som representerar lambda-uttrycket. |
| Compile(DebugInfoGenerator) |
Skapar ett ombud som representerar lambda-uttrycket. |
| CompileToMethod(MethodBuilder, DebugInfoGenerator) |
Kompilerar lambda till en metoddefinition och anpassad felsökningsinformation. |
| CompileToMethod(MethodBuilder) |
Kompilerar lambda till en metoddefinition. |
| Equals(Object) |
Avgör om det angivna objektet är lika med det aktuella objektet. (Ärvd från Object) |
| GetHashCode() |
Fungerar som standard-hash-funktion. (Ärvd från Object) |
| GetType() |
Hämtar den aktuella instansen Type . (Ärvd från Object) |
| MemberwiseClone() |
Skapar en ytlig kopia av den aktuella Object. (Ärvd från Object) |
| Reduce() |
Reducerar den här noden till ett enklare uttryck. Om CanReduce returnerar true bör detta returnera ett giltigt uttryck. Den här metoden kan returnera en annan nod som måste minskas. (Ärvd från Expression) |
| ReduceAndCheck() |
Reducerar den här noden till ett enklare uttryck. Om CanReduce returnerar true bör detta returnera ett giltigt uttryck. Den här metoden kan returnera en annan nod som måste minskas. (Ärvd från Expression) |
| ReduceExtensions() |
Minskar uttrycket till en känd nodtyp (som inte är en tilläggsnod) eller returnerar bara uttrycket om det redan är en känd typ. (Ärvd från Expression) |
| ToString() |
Returnerar en textrepresentation av Expression. (Ärvd från Expression) |
| VisitChildren(ExpressionVisitor) |
Minskar noden och anropar sedan besökarens ombud för det reducerade uttrycket. Metoden genererar ett undantag om noden inte är redukterbar. (Ärvd från Expression) |