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
- 상속
- 파생
예제
다음 예제에서는 전달된 된 인수를 사용 하 여 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 의 속성을 LambdaExpression 는 Lambda합니다.
사용 된 Lambda 를 만드는 팩터리 메서드가 LambdaExpression 개체입니다.
속성
Body |
람다 식의 본문을 가져옵니다. |
CanReduce |
노드를 더 단순한 노드로 줄일 수 있는지 나타냅니다. true를 반환하면 Reduce()를 호출하여 축소된 형식을 만들 수 있습니다. (다음에서 상속됨 Expression) |
Name |
람다 식의 이름을 가져옵니다. |
NodeType |
이 Expression의 노드 유형을 반환합니다. |
NodeType |
이 Expression의 노드 형식을 가져옵니다. (다음에서 상속됨 Expression) |
Parameters |
람다 식의 매개 변수를 가져옵니다. |
ReturnType |
람다 식의 반환 형식을 가져옵니다. |
TailCall |
마무리 호출 최적화를 사용하여 람다 식을 컴파일할지 여부를 나타내는 값을 가져옵니다. |
Type |
이 Expression이 나타내는 식의 정적 형식을 가져옵니다. |
Type |
이 Expression이 나타내는 식의 정적 형식을 가져옵니다. (다음에서 상속됨 Expression) |
메서드
Accept(ExpressionVisitor) |
이 노드 형식에 대한 특정 Visit 메서드로 디스패치합니다. 예를 들어 MethodCallExpression은 VisitMethodCall(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) |
적용 대상
.NET