🧩 مفهوم Expression Tree
یک Expression Tree در واقع ساختار داده درخت مانند است که یک عبارت را نشان میدهد. هر گره در درخت خود یک عبارت است، مانند یک ثابت، یک متغیر، یک فراخوانی متد یا یک عملگر. گره اصلی درخت بیانگر عملکرد اصلی درخت میباشد و گرههای برگ عملوند هستند. به عنوان مثال، عبارت x + (y * z) را میتوان به عنوان درخت عبارت مانند زیر نشان داد:
+
/ \
x *
/ \
y z
نمونه کد C# مثال بالا به این صورت است:
x = Expression.Parameter(typeof(int), "x");
var y = Expression.Parameter(typeof(int), "y");
var z = Expression.Parameter(typeof(int), "z");
var multiply = Expression.Multiply(y, z);
var add = Expression.Add(x, multiply);
var expression = Expression.Lambda<Func<int, int, int, int>>(add, x, y, z);
متد Expression.Lambda یک عبارت lambda را از Expression Tree و لیستی از پارامترها ایجاد میکند. عبارت lambda نوع خاصی از عبارت است که میتواند به عنوان یک delegate کامپایل و اجرا شود. delegate نوعی است که نشان دهنده امضای متد است و میتواند ارجاع به یک متد را نگه دارد.
🔗 نسخه کامل مقاله را میتوانید در اینجا مطالعه نمایید.
⁉️ برای بحث و تبادل نظر فنی در مورد این پست، نظرات خود را با ما در قسمت کامنتها به اشتراک بگذارید.
#محمدرضا_پازوکی (لینکدین)
کانال تلگرام:
@SoftwarePhilosophy
______