LambdaExpression LambdaExpression LambdaExpression LambdaExpression Class

定義

ラムダ式を記述します。 Describes a lambda expression. これは、.NET メソッド本体に似たコードのブロックをキャプチャします。 This captures a block of code that is similar to a .NET method body.

public ref class LambdaExpression abstract : System::Linq::Expressions::Expression
public abstract class LambdaExpression : System.Linq.Expressions.Expression
type LambdaExpression = class
    inherit Expression
Public MustInherit Class LambdaExpression
Inherits Expression
継承
LambdaExpressionLambdaExpressionLambdaExpressionLambdaExpression
派生

次の例では、1 を使用して、渡された引数に追加するラムダ式を表す式を作成する方法、Lambdaメソッド。The following example demonstrates how to create an expression that represents a lambda expression that adds 1 to the passed argument by using the Lambda method.

// 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型が式ツリーの形式でのラムダ式を表します。The LambdaExpression type represents a lambda expression in the form of an expression tree. Expression<TDelegate>型から派生したLambdaExpressionの詳細は、明示的にこともできますをラムダ式を表すラムダ式の型をキャプチャします。The Expression<TDelegate> type, which derives from LambdaExpression and captures the type of the lambda expression more explicitly, can also be used to represent a lambda expression. 実行時に、ラムダ式を表す式ツリー ノードは常に型のExpression<TDelegate>します。At runtime, an expression tree node that represents a lambda expression is always of type Expression<TDelegate>.

値、NodeTypeのプロパティをLambdaExpressionLambdaします。The value of the NodeType property of a LambdaExpression is Lambda.

使用して、Lambda作成するファクトリ メソッドをLambdaExpressionオブジェクト。Use the Lambda factory methods to create a LambdaExpression object.

プロパティ

Body Body Body Body

ラムダ式の本体を取得します。 Gets the body of the lambda expression.

CanReduce CanReduce CanReduce CanReduce

ノードをより単純なノードに変形できることを示します。 Indicates that the node can be reduced to a simpler node. これが true を返す場合、Reduce() を呼び出して単純化された形式を生成できます。 If this returns true, Reduce() can be called to produce the reduced form.

(Inherited from Expression)
Name Name Name Name

ラムダ式の名前を取得します。 Gets the name of the lambda expression.

NodeType NodeType NodeType NodeType

この Expression のノード型を返します。 Returns the node type of this Expression.

Parameters Parameters Parameters Parameters

ラムダ式のパラメーターを取得します。 Gets the parameters of the lambda expression.

ReturnType ReturnType ReturnType ReturnType

ラムダ式の戻り値の型を取得します。 Gets the return type of the lambda expression.

TailCall TailCall TailCall TailCall

ラムダ式が tail 呼び出し最適化を使用してコンパイルされるかどうかを示す値を取得します。 Gets the value that indicates if the lambda expression will be compiled with the tail call optimization.

Type Type Type Type

この Expression が表す式の静的な型を取得します。 Gets the static type of the expression that this Expression represents.

方法

Accept(ExpressionVisitor) Accept(ExpressionVisitor) Accept(ExpressionVisitor) Accept(ExpressionVisitor)

このノード型の特定の Visit メソッドにデスパッチします。 Dispatches to the specific visit method for this node type. たとえば、MethodCallExpressionVisitMethodCall(MethodCallExpression) を呼び出します。 For example, MethodCallExpression calls the VisitMethodCall(MethodCallExpression).

(Inherited from Expression)
Compile() Compile() Compile() Compile()

ラムダ式を表すデリゲートを作成します。 Produces a delegate that represents the lambda expression.

Compile(Boolean) Compile(Boolean) Compile(Boolean) Compile(Boolean)

ラムダ式を表す、解釈されたまたはコンパイル済みのデリゲートを作成します。 Produces an interpreted or compiled delegate that represents the lambda expression.

Compile(DebugInfoGenerator) Compile(DebugInfoGenerator) Compile(DebugInfoGenerator) Compile(DebugInfoGenerator)

ラムダ式を表すデリゲートを作成します。 Produces a delegate that represents the lambda expression.

CompileToMethod(MethodBuilder) CompileToMethod(MethodBuilder) CompileToMethod(MethodBuilder) CompileToMethod(MethodBuilder)

ラムダをメソッド定義にコンパイルします。 Compiles the lambda into a method definition.

CompileToMethod(MethodBuilder, DebugInfoGenerator) CompileToMethod(MethodBuilder, DebugInfoGenerator) CompileToMethod(MethodBuilder, DebugInfoGenerator) CompileToMethod(MethodBuilder, DebugInfoGenerator)

ラムダをメソッド定義およびカスタム デバッグ情報にコンパイルします。 Compiles the lambda into a method definition and custom debug information.

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

指定したオブジェクトが、現在のオブジェクトと等しいかどうかを判断します。 Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

既定のハッシュ関数として機能します。 Serves as the default hash function.

(Inherited from Object)
GetType() GetType() GetType() GetType()

現在のインスタンスの Type を取得します。 Gets the Type of the current instance.

(Inherited from Object)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

現在の Object の簡易コピーを作成します。 Creates a shallow copy of the current Object.

(Inherited from Object)
Reduce() Reduce() Reduce() Reduce()

このノードをより単純な式に変形します。 Reduces this node to a simpler expression. CanReduce が true を返す場合、これは有効な式を返します。 If CanReduce returns true, this should return a valid expression. このメソッドは、それ自体も単純化する必要がある別のノードを返す場合があります。 This method can return another node which itself must be reduced.

(Inherited from Expression)
ReduceAndCheck() ReduceAndCheck() ReduceAndCheck() ReduceAndCheck()

このノードをより単純な式に変形します。 Reduces this node to a simpler expression. CanReduce が true を返す場合、これは有効な式を返します。 If CanReduce returns true, this should return a valid expression. このメソッドは、それ自体も単純化する必要がある別のノードを返す場合があります。 This method can return another node which itself must be reduced.

(Inherited from Expression)
ReduceExtensions() ReduceExtensions() ReduceExtensions() ReduceExtensions()

式を既知のノード型 (拡張ノードではない型) に単純化し、それが既に既知の型である場合は単に式を返します。 Reduces the expression to a known node type (that is not an Extension node) or just returns the expression if it is already a known type.

(Inherited from Expression)
ToString() ToString() ToString() ToString()

Expression のテキスト表現を返します。 Returns a textual representation of the Expression.

(Inherited from Expression)
VisitChildren(ExpressionVisitor) VisitChildren(ExpressionVisitor) VisitChildren(ExpressionVisitor) VisitChildren(ExpressionVisitor)

ノードを単純化し、単純化された式の visitor デリゲートを呼び出します。 Reduces the node and then calls the visitor delegate on the reduced expression. ノードを単純化できない場合、このメソッドは例外をスローします。 The method throws an exception if the node is not reducible.

(Inherited from Expression)

適用対象