다음을 통해 공유


LambdaExpression 클래스

정의

람다 식을 설명합니다. .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
상속
LambdaExpression
파생

예제

다음 예제에서는 전달된 된 인수를 사용 하 여 1을 추가 하는 람다 식을 나타내는 식 만들기 하는 방법에 설명 합니다 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

설명

LambdaExpression 형식 식 트리의 형태로 람다 식을 나타냅니다. 합니다 Expression<TDelegate> 형식에서 파생 되는 LambdaExpression 더 명시적으로 사용할 수도 있습니다는 람다 식을 나타내는 람다 식의 형식을 캡처합니다. 런타임에서 람다 식을 나타내는 식 트리 노드는 항상 형식의 Expression<TDelegate>합니다.

값을 NodeType 의 속성을 LambdaExpressionLambda합니다.

사용 된 Lambda 를 만드는 팩터리 메서드가 LambdaExpression 개체입니다.

속성

Body

람다 식의 본문을 가져옵니다.

CanReduce

노드를 더 단순한 노드로 줄일 수 있는지 나타냅니다. true를 반환하면 Reduce()를 호출하여 축소된 형식을 만들 수 있습니다.

(다음에서 상속됨 Expression)
Name

람다 식의 이름을 가져옵니다.

NodeType

Expression의 노드 유형을 반환합니다.

NodeType

Expression의 노드 형식을 가져옵니다.

(다음에서 상속됨 Expression)
Parameters

람다 식의 매개 변수를 가져옵니다.

ReturnType

람다 식의 반환 형식을 가져옵니다.

TailCall

마무리 호출 최적화를 사용하여 람다 식을 컴파일할지 여부를 나타내는 값을 가져옵니다.

Type

Expression이 나타내는 식의 정적 형식을 가져옵니다.

Type

Expression이 나타내는 식의 정적 형식을 가져옵니다.

(다음에서 상속됨 Expression)

메서드

Accept(ExpressionVisitor)

이 노드 형식에 대한 특정 Visit 메서드로 디스패치합니다. 예를 들어 MethodCallExpressionVisitMethodCall(MethodCallExpression)을 호출합니다.

(다음에서 상속됨 Expression)
Compile()

람다 식을 나타내는 대리자를 생성합니다.

Compile(Boolean)

람다 식을 나타내는 해석되거나 컴파일된 대리자를 생성합니다.

Compile(DebugInfoGenerator)

람다 식을 나타내는 대리자를 생성합니다.

CompileToMethod(MethodBuilder)

람다를 메서드 정의로 컴파일합니다.

CompileToMethod(MethodBuilder, DebugInfoGenerator)

람다를 메서드 정의 및 사용자 지정 디버그 정보로 컴파일합니다.

Equals(Object)

지정된 개체가 현재 개체와 같은지 확인합니다.

(다음에서 상속됨 Object)
GetHashCode()

기본 해시 함수로 작동합니다.

(다음에서 상속됨 Object)
GetType()

현재 인스턴스의 Type을 가져옵니다.

(다음에서 상속됨 Object)
MemberwiseClone()

현재 Object의 단순 복사본을 만듭니다.

(다음에서 상속됨 Object)
Reduce()

이 노드를 더 단순한 식으로 줄입니다. CanReduce가 true를 반환하면 유효한 식을 반환합니다. 이 메서드는 자체를 줄여야 하는 다른 노드를 반환할 수 있습니다.

(다음에서 상속됨 Expression)
ReduceAndCheck()

이 노드를 더 단순한 식으로 줄입니다. CanReduce가 true를 반환하면 유효한 식을 반환합니다. 이 메서드는 자체를 줄여야 하는 다른 노드를 반환할 수 있습니다.

(다음에서 상속됨 Expression)
ReduceExtensions()

알려진 노드 형식(확장 노드가 아님)으로 식을 줄이거나 이미 알려진 형식인 경우 식을 반환합니다.

(다음에서 상속됨 Expression)
ToString()

Expression의 텍스트 표현을 반환합니다.

(다음에서 상속됨 Expression)
VisitChildren(ExpressionVisitor)

노드를 줄인 다음 줄인 식에서 방문자 대리자를 호출합니다. 이 메서드는 노드를 줄일 수 없으면 예외를 throw합니다.

(다음에서 상속됨 Expression)

적용 대상