آشنایی با Expression در LINQ – آموزش LINQ

  • دوشنبه ۲۴ آبان ۱۴۰۰
  • بازدید ۹۷۱ نفر

تصویر linq-expression_11124 آشنایی با Expression در LINQ - آموزش LINQ

آشنایی با Expression در LINQ

عبارت لامبدا را می توان در delegate هایی از نوع Action و Func ذخیره کرد. کامپایلر .NET در زمان کامپایل عبارت لامبدا ذخیره شده در یک Action یا Func را به کد قابل اجرا تبدیل می کند. زبان کوئری نویسی LINQ یک نوع داده جدید به نام Expression معرفی کرد که می تواند یک عبارت لامبدا را در خود نگه دارد. تفاوتی که با Action و Func دارد این است که کامپایلر به جای تبدیل آن به کد اجرایی آن را به Expression Tree تبدیل می کند.

تعریف یک Expression

برای کار با نوع داده Expression لازم است تا فضای نام System.Linq.Expressions را به برنامه اضافه کنید. الگوی یک Expression به صورت Expression<TDelegate> است و این نشان دهنده این است که نوع یک Expression می تواند یک delegate از نوع Action یا Func باشد. برای درک بهتر به مثال زیر توجه کنید:

در مثال فوق ما یک عبارت لامبدا را در متغیر isTeenAger که یک Func است ذخیره کردیم. حال می توانیم آن را مانند نمونه زیر به یک Expression تبدیل کنیم:

مشابه این کار را می توانید بر روی Action ها هم انجام دهید. برای مثال:

تا به اینحا ما Expression را ایجاد کردیم. در ادامه نحوه اجرای آن را بررسی می کنیم.

اجرای یک Expression

همانطور که دید یک Expression در داخل خود یک delegate را ذخیره می کند. با استفاده از متد Compile مربوط به Expression می توانیم به آن delegate دسترسی داشته باشیم و در نتیجه می توانیم آن را اجرا کنیم. برای درک بهتر به مثال زیر توجه کنید:

ثبت نظر
ریفریش کنید!
نظرات کاربران (۰ مورد)

هیچ نظری ثبت نشده است