Bagikan melalui


Cara: Menjalankan Pohon Ekspresi (Visual Basic)

Topik ini menunjukkan kepada Anda cara menjalankan pohon ekspresi. Menjalankan pohon ekspresi dapat mengembalikan nilai, atau mungkin hanya melakukan tindakan seperti memanggil metode.

Hanya pohon ekspresi yang mewakili ekspresi lambda yang dapat dijalankan. Pohon ekspresi yang mewakili ekspresi lambda berjenis LambdaExpression atau Expression<TDelegate>. Untuk menjalankan pohon ekspresi ini, panggil metode Compile untuk membuat delegasi yang dapat dieksekusi, lalu jalankan delegasi tersebut.

Nota

Jika jenis delegasi tidak diketahui, artinya, ekspresi lambda berjenis LambdaExpression dan bukan Expression<TDelegate>, Anda harus memanggil DynamicInvoke metode pada delegasi alih-alih memanggilnya secara langsung.

Jika pohon ekspresi tidak mewakili ekspresi lambda, Anda dapat membuat ekspresi lambda baru yang memiliki pohon ekspresi asli sebagai isinya, dengan memanggil Lambda<TDelegate>(Expression, IEnumerable<ParameterExpression>) metode . Kemudian, Anda dapat menjalankan ekspresi lambda seperti yang dijelaskan sebelumnya di bagian ini.

Contoh

Contoh kode berikut menunjukkan cara menjalankan pohon ekspresi yang mewakili menaikkan angka ke kekuatan dengan membuat ekspresi lambda dan mengeksekusinya. Hasilnya, yang menunjukkan angka yang dinaikkan ke daya, ditampilkan.

' The expression tree to execute.  
Dim be As BinaryExpression = Expression.Power(Expression.Constant(2.0R), Expression.Constant(3.0R))  
  
' Create a lambda expression.  
Dim le As Expression(Of Func(Of Double)) = Expression.Lambda(Of Func(Of Double))(be)  
  
' Compile the lambda expression.  
Dim compiledExpression As Func(Of Double) = le.Compile()  
  
' Execute the lambda expression.  
Dim result As Double = compiledExpression()  
  
' Display the result.  
MsgBox(result)  
  
' This code produces the following output:  
' 8  

Mengkompilasi kode

  • Sertakan namespace System.Linq.Expressions.

Lihat juga