다음을 통해 공유


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
파생

예제

다음 예제에서는 메서드를 사용하여 Lambda 전달된 인수에 1을 추가하는 람다 식을 나타내는 식을 만드는 방법을 보여 줍니다.

// 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>입니다.

의 속성 LambdaExpressionNodeType 입니다Lambda.

팩터리 메서드를 Lambda 사용하여 개체를 만듭니다 LambdaExpression .

속성

Name Description
Body

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

CanReduce

노드를 더 간단한 노드로 줄일 수 있음을 나타냅니다. true를 반환하면 Reduce()를 호출하여 축소된 폼을 생성할 수 있습니다.

(다음에서 상속됨 Expression)
Name

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

NodeType

Expression노드 형식을 반환합니다.

NodeType

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

(다음에서 상속됨 Expression)
Parameters

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

ReturnType

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

TailCall

람다 식이 비상 호출 최적화를 사용하여 컴파일되는지를 나타내는 값을 가져옵니다.

Type

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

Type

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

(다음에서 상속됨 Expression)

메서드

Name Description
Accept(ExpressionVisitor)

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

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

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

Compile(Boolean)

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

Compile(DebugInfoGenerator)

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

CompileToMethod(MethodBuilder, DebugInfoGenerator)

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

CompileToMethod(MethodBuilder)

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

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)

적용 대상