この記事は機械翻訳されています。英語版の記事を表示するには、[英語] のチェック ボックスをオンにしてください。また、テキストにマウス ポインターを合わせると、ポップアップ ウィンドウに英語のテキストを表示することもできます。
翻訳
英語

LambdaExpression クラス

 

公開日: 2016年10月

ラムダ式を記述します。 これは、.NET メソッド本体に似たコードのブロックをキャプチャします。

名前空間:   System.Linq.Expressions
アセンブリ:  System.Core (System.Core.dll 内)

System.Object
  System.Linq.Expressions.Expression
    System.Linq.Expressions.LambdaExpression
      System.Linq.Expressions.Expression<TDelegate>

public abstract class LambdaExpression : Expression

名前説明
System_CAPS_pubpropertyBody

ラムダ式の本体を取得します。

System_CAPS_pubpropertyCanReduce

ノードをより単純なノードに変形できることを示します。 これが true を返す場合、Reduce() を呼び出して単純化された形式を生成できます。(Expression から継承されます。)

System_CAPS_pubpropertyName

ラムダ式の名前を取得します。

System_CAPS_pubpropertyNodeType

この Expression のノード型を返します。(Expression.NodeType をオーバーライドします。)

System_CAPS_pubpropertyParameters

ラムダ式のパラメーターを取得します。

System_CAPS_pubpropertyReturnType

ラムダ式の戻り値の型を取得します。

System_CAPS_pubpropertyTailCall

末尾呼び出し最適化とラムダ式がコンパイルされるかどうかを示す値を取得します。

System_CAPS_pubpropertyType

この Expression が表す式の静的な型を取得します。(Expression.Type をオーバーライドします。)

名前説明
System_CAPS_protmethodAccept(ExpressionVisitor)

このノード型の特定の Visit メソッドにデスパッチします。 たとえば、MethodCallExpressionVisitMethodCall を呼び出します。(Expression から継承されます。)

System_CAPS_pubmethodCompile()

ラムダ式を表すデリゲートを生成します。

System_CAPS_pubmethodCompile(DebugInfoGenerator)

ラムダ式を表すデリゲートを生成します。

System_CAPS_pubmethodCompileToMethod(MethodBuilder)

ラムダをメソッドの定義にコンパイルします。

System_CAPS_pubmethodCompileToMethod(MethodBuilder, DebugInfoGenerator)

メソッドの定義とカスタムのデバッグ情報には、ラムダをコンパイルします。

System_CAPS_pubmethodEquals(Object)

指定したオブジェクトが、現在のオブジェクトと等しいかどうかを判断します。(Object から継承されます。)

System_CAPS_protmethodFinalize()

オブジェクトがガベージ コレクションにより収集される前に、そのオブジェクトがリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 (Object から継承されます。)

System_CAPS_pubmethodGetHashCode()

既定のハッシュ関数として機能します。(Object から継承されます。)

System_CAPS_pubmethodGetType()

現在のインスタンスの Type を取得します。(Object から継承されます。)

System_CAPS_protmethodMemberwiseClone()

現在の Object の簡易コピーを作成します。(Object から継承されます。)

System_CAPS_pubmethodReduce()

このノードをより単純な式に変形します。 CanReduce が true を返す場合、これは有効な式を返します。 このメソッドは、それ自体も単純化する必要がある別のノードを返す場合があります。(Expression から継承されます。)

System_CAPS_pubmethodReduceAndCheck()

このノードをより単純な式に変形します。 CanReduce が true を返す場合、これは有効な式を返します。 このメソッドは、それ自体も単純化する必要がある別のノードを返す場合があります。(Expression から継承されます。)

System_CAPS_pubmethodReduceExtensions()

式を既知のノード型 (拡張ノードではない型) に単純化し、それが既に既知の型である場合は単に式を返します。(Expression から継承されます。)

System_CAPS_pubmethodToString()

Expression のテキスト表現を返します。(Expression から継承されます。)

System_CAPS_protmethodVisitChildren(ExpressionVisitor)

ノードを単純化し、単純化された式の visitor デリゲートを呼び出します。 ノードを単純化できない場合、このメソッドは例外をスローします。(Expression から継承されます。)

LambdaExpression 型は、式ツリーの形でラムダ式を表します。 Expression<TDelegate> から派生型 LambdaExpression しより明示的にこともできますをラムダ式を表すラムダ式の型をキャプチャします。 実行時に、ラムダ式を表す式ツリー ノードが常に型の Expression<TDelegate>です。

値、 NodeType のプロパティ、 LambdaExpressionLambdaです。

使用して、 Lambda を作成するファクトリ メソッド、 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

ユニバーサル Windows プラットフォーム
8 以降で使用可能
.NET Framework
3.5 以降で使用可能
ポータブル クラス ライブラリ
サポート対象: 移植可能 .NET プラットフォーム
Silverlight
2.0 以降で使用可能
Windows Phone Silverlight
7.0 以降で使用可能
Windows Phone
8.1 以降で使用可能

この型のパブリック static (Visual Basic では Shared ) メンバーはスレッド セーフです。インスタンス メンバーの場合は、スレッド セーフであるとは限りません。

トップに戻る
表示: