LambdaExpression 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
람다 식을 설명합니다. .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
- 상속
- 파생
예제
다음 예제에서는 메서드를 사용하여 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>입니다.
의 속성 LambdaExpression 값 NodeType 입니다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) |