LambdaExpression Sınıf

Tanım

Lambda ifadesini açıklar. Bu, .NET yöntemi gövdesine benzer bir kod bloğu yakalar.

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
Devralma
LambdaExpression
Türetilmiş

Örnekler

Aşağıdaki örnekte, yöntemini kullanarak geçirilen bağımsız değişkene 1 ekleyen bir lambda ifadesini temsil eden bir ifadenin nasıl oluşturulacağı gösterilmektedir Lambda .

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

Açıklamalar

türü, LambdaExpression ifade ağacı biçiminde bir lambda ifadesini temsil eder. Expression<TDelegate> Lambda ifadesinin türünden LambdaExpression türetilen ve lambda ifadesinin türünü daha açık bir şekilde yakalayan tür, lambda ifadesini temsil etmek için de kullanılabilir. Çalışma zamanında, lambda ifadesini temsil eden bir ifade ağacı düğümü her zaman türündedir Expression<TDelegate>.

özelliğinin NodeTypeLambdaExpression değeri şeklindedir Lambda.

Lambda Nesne oluşturmak LambdaExpression için fabrika yöntemlerini kullanın.

Özellikler

Body

Lambda ifadesinin gövdesini alır.

CanReduce

Düğümün daha basit bir düğüme indirgenebileceğini gösterir. Bu true döndürürse, azaltılmış formu oluşturmak için Reduce() çağrılabilir.

(Devralındığı yer: Expression)
Name

Lambda ifadesinin adını alır.

NodeType

Bu Expressiondüğüm türünü döndürür.

NodeType

Bu Expressiondüğüm türünü alır.

(Devralındığı yer: Expression)
Parameters

Lambda ifadesinin parametrelerini alır.

ReturnType

Lambda ifadesinin dönüş türünü alır.

TailCall

Lambda ifadesinin kuyruk çağrısı iyileştirmesiyle derlenip derlenmediğini gösteren değeri alır.

Type

Bunun Expression temsil ettiği ifadenin statik türünü alır.

Type

Bunun Expression temsil ettiği ifadenin statik türünü alır.

(Devralındığı yer: Expression)

Yöntemler

Accept(ExpressionVisitor)

Bu düğüm türü için belirli bir ziyaret yöntemine gönderilir. Örneğin, MethodCallExpression öğesini çağırır VisitMethodCall(MethodCallExpression).

(Devralındığı yer: Expression)
Compile()

Lambda ifadesini temsil eden bir temsilci oluşturur.

Compile(Boolean)

Lambda ifadesini temsil eden yorumlanmış veya derlenmiş bir temsilci oluşturur.

Compile(DebugInfoGenerator)

Lambda ifadesini temsil eden bir temsilci oluşturur.

CompileToMethod(MethodBuilder)

Lambdayı bir yöntem tanımına derler.

CompileToMethod(MethodBuilder, DebugInfoGenerator)

Lambda'yi bir yöntem tanımına ve özel hata ayıklama bilgilerine derler.

Equals(Object)

Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler.

(Devralındığı yer: Object)
GetHashCode()

Varsayılan karma işlevi işlevi görür.

(Devralındığı yer: Object)
GetType()

Type Geçerli örneğini alır.

(Devralındığı yer: Object)
MemberwiseClone()

Geçerli Objectöğesinin sığ bir kopyasını oluşturur.

(Devralındığı yer: Object)
Reduce()

Bu düğümü daha basit bir ifadeye küçültür. CanReduce true döndürürse, bu geçerli bir ifade döndürmelidir. Bu yöntem, azaltması gereken başka bir düğüm döndürebilir.

(Devralındığı yer: Expression)
ReduceAndCheck()

Bu düğümü daha basit bir ifadeye küçültür. CanReduce true döndürürse, bu geçerli bir ifade döndürmelidir. Bu yöntem, azaltması gereken başka bir düğüm döndürebilir.

(Devralındığı yer: Expression)
ReduceExtensions()

İfadeyi bilinen bir düğüm türüne (uzantı düğümü değildir) azaltır veya zaten bilinen bir türse yalnızca ifadeyi döndürür.

(Devralındığı yer: Expression)
ToString()

öğesinin metinsel bir gösterimini Expressiondöndürür.

(Devralındığı yer: Expression)
VisitChildren(ExpressionVisitor)

Düğümü azaltır ve ardından azaltılmış ifadede ziyaretçi temsilcisini çağırır. Yöntem, düğüm azaltılabilir değilse bir özel durum oluşturur.

(Devralındığı yer: Expression)

Şunlara uygulanır