Bagikan melalui


Expression<TDelegate>.Compile Metode

Definisi

Overload

Compile()

Mengkompilasi ekspresi lambda yang dijelaskan oleh pohon ekspresi ke dalam kode yang dapat dieksekusi dan menghasilkan delegasi yang mewakili ekspresi lambda.

Compile(Boolean)

Mengkompilasi ekspresi lambda yang dijelaskan oleh pohon ekspresi ke dalam kode yang ditafsirkan atau dikompilasi dan menghasilkan delegasi yang mewakili ekspresi lambda.

Compile(DebugInfoGenerator)

Menghasilkan delegasi yang mewakili ekspresi lambda.

Compile()

Sumber:
LambdaExpression.cs
Sumber:
LambdaExpression.cs
Sumber:
LambdaExpression.cs

Mengkompilasi ekspresi lambda yang dijelaskan oleh pohon ekspresi ke dalam kode yang dapat dieksekusi dan menghasilkan delegasi yang mewakili ekspresi lambda.

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

Mengembalikan

TDelegate

Delegasi jenis TDelegate yang mewakili ekspresi lambda yang dikompilasi yang dijelaskan oleh Expression<TDelegate>.

Contoh

Contoh kode berikut menunjukkan bagaimana Compile digunakan untuk menjalankan pohon ekspresi.


// 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

Keterangan

Metode ini Compile menghasilkan delegasi jenis TDelegate saat runtime. Ketika delegasi tersebut dijalankan, delegasi tersebut memiliki perilaku yang dijelaskan oleh semantik Expression<TDelegate>.

Metode Compile ini dapat digunakan untuk mendapatkan nilai pohon ekspresi apa pun. Pertama, buat ekspresi lambda yang memiliki ekspresi sebagai isinya dengan menggunakan Lambda metode . Kemudian panggil Compile untuk mendapatkan delegasi, dan jalankan delegasi untuk mendapatkan nilai ekspresi.

Berlaku untuk

Compile(Boolean)

Sumber:
LambdaExpression.cs
Sumber:
LambdaExpression.cs
Sumber:
LambdaExpression.cs

Mengkompilasi ekspresi lambda yang dijelaskan oleh pohon ekspresi ke dalam kode yang ditafsirkan atau dikompilasi dan menghasilkan delegasi yang mewakili ekspresi lambda.

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

Parameter

preferInterpretation
Boolean

true untuk menunjukkan bahwa ekspresi harus dikompilasi ke formulir yang ditafsirkan, jika tersedia; false Sebaliknya.

Mengembalikan

TDelegate

Delegasi yang mewakili ekspresi lambda yang dikompilasi yang dijelaskan oleh Expression<TDelegate>.

Berlaku untuk

Compile(DebugInfoGenerator)

Sumber:
LambdaExpression.cs
Sumber:
LambdaExpression.cs
Sumber:
LambdaExpression.cs

Menghasilkan delegasi yang mewakili ekspresi lambda.

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

Parameter

debugInfoGenerator
DebugInfoGenerator

Generator informasi penelusuran kesalahan yang digunakan oleh pengompilasi untuk menandai titik urutan dan membuat anotasi variabel lokal.

Mengembalikan

TDelegate

Delegasi yang berisi versi lambda yang dikompilasi.

Berlaku untuk