LambdaExpression Klass

Definition

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

Gäller för