Expression<TDelegate>.Compile Expression<TDelegate>.Compile Expression<TDelegate>.Compile Expression<TDelegate>.Compile Method

定義

オーバーロード

Compile() Compile() Compile() Compile()

実行可能コードに、式ツリーによって記述されたラムダ式をコンパイルし、ラムダ式を表すデリゲートを生成します。Compiles the lambda expression described by the expression tree into executable code and produces a delegate that represents the lambda expression.

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

式ツリーで記述されたラムダ式を、解釈されたまたはコンパイル済みコードにコンパイルし、そのラムダ式を表すデリゲートを生成します。Compiles the lambda expression described by the expression tree into interpreted or compiled code and produces a delegate that represents the lambda expression.

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

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

Compile() Compile() Compile() Compile()

実行可能コードに、式ツリーによって記述されたラムダ式をコンパイルし、ラムダ式を表すデリゲートを生成します。Compiles the lambda expression described by the expression tree into executable code and produces a delegate that represents the lambda expression.

public:
 TDelegate Compile();
public TDelegate Compile ();
override this.Compile : unit -> 'Delegate
Public Function Compile () As TDelegate

戻り値

TDelegate TDelegate TDelegate TDelegate

型のデリゲートTDelegateによって記述されたコンパイル済みのラムダ式を表す、Expression<TDelegate>します。A delegate of type TDelegate that represents the compiled lambda expression described by the Expression<TDelegate>.

次のコード例に示す方法Compile式ツリーを実行するために使用します。The following code example demonstrates how Compile is used to execute an expression tree.


// Lambda expression as data in the form of an expression tree.
System.Linq.Expressions.Expression<Func<int, bool>> expr = i => i < 5;
// Compile the expression tree into executable code.
Func<int, bool> deleg = expr.Compile();
// Invoke the method and print the output.
Console.WriteLine("deleg(4) = {0}", deleg(4));

/*  This code produces the following output:

    deleg(4) = True
*/


' Lambda expression as data in the form of an expression tree.
Dim expression As System.Linq.Expressions.Expression(Of Func(Of Integer, Boolean)) = Function(ByVal i) i < 5
' Compile the expression tree into executable code.
Dim deleg As Func(Of Integer, Boolean) = expression.Compile()
' Invoke the method and print the output.
MsgBox(String.Format("deleg(4) = {0}", deleg(4)))

' This code produces the following output:
'
' deleg(4) = True

注釈

Compileメソッドは、型のデリゲートを生成します。TDelegate実行時にします。The Compile method produces a delegate of type TDelegate at runtime. セマンティクスで説明する動作が、そのデリゲートの実行時、Expression<TDelegate>します。When that delegate is executed, it has the behavior described by the semantics of the Expression<TDelegate>.

Compileメソッドを使用して、任意の式ツリーの値を取得します。The Compile method can be used to obtain the value of any expression tree. 最初を使用して、本体として式を持つラムダ式を作成、Lambdaメソッド。First, create a lambda expression that has the expression as its body by using the Lambda method. 呼び出してCompileをデリゲートを取得し、式の値を取得するデリゲートを実行します。Then call Compile to obtain a delegate, and execute the delegate to obtain the value of the expression.

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

式ツリーで記述されたラムダ式を、解釈されたまたはコンパイル済みコードにコンパイルし、そのラムダ式を表すデリゲートを生成します。Compiles the lambda expression described by the expression tree into interpreted or compiled code and produces a delegate that represents the lambda expression.

public:
 TDelegate Compile(bool preferInterpretation);
public TDelegate Compile (bool preferInterpretation);
override this.Compile : bool -> 'Delegate
Public Function Compile (preferInterpretation As Boolean) As TDelegate

パラメーター

preferInterpretation
Boolean Boolean Boolean Boolean

その式を解釈された形式にコンパイルすべきことを示す true (存在する場合)、それ以外の場合 falsetrue to indicate that the expression should be compiled to an interpreted form, if it is available; false otherwise.

戻り値

TDelegate TDelegate TDelegate TDelegate

Expression<TDelegate> により記述されたコンパイル済みのラムダ式を表すデリゲート。A delegate that represents the compiled lambda expression described by the Expression<TDelegate>.

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

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

public:
 TDelegate Compile(System::Runtime::CompilerServices::DebugInfoGenerator ^ debugInfoGenerator);
public TDelegate Compile (System.Runtime.CompilerServices.DebugInfoGenerator debugInfoGenerator);
override this.Compile : System.Runtime.CompilerServices.DebugInfoGenerator -> 'Delegate

パラメーター

debugInfoGenerator
DebugInfoGenerator DebugInfoGenerator DebugInfoGenerator DebugInfoGenerator

デバッグ情報ジェネレーターがシーケンス ポイントをマークすると、ローカル変数の注釈を付け、コンパイラで使用されます。Debugging information generator used by the compiler to mark sequence points and annotate local variables.

戻り値

TDelegate TDelegate TDelegate TDelegate

ラムダのコンパイル済みバージョンを含むデリゲート。A delegate containing the compiled version of the lambda.

適用対象