آموزش درخت ها (Expression Trees) در سی شارپ

Expression Trees in C# 10
تعداد ویدئو 32
زمان دوره 01:31:35
مترجم مرتضی گیتی
ناظر ترجمه مرتضی گیتی
دوبلر مرتضی گیتی
ناظر دوبلاژ مرتضی گیتی
سایت منتشر کننده پلورال سایت

آموزش درخت ها (Expression Trees) در سی شارپ یکی دیگر از آموزش های گروه آموزشی پرووید می باشد که در این قسمت آن را به شما معرفی می کنیم. این بسته آموزشی نیز یکی از دوره های آموزشی دیگر که در حوزه فارسی سازی آموزش های انگلیسی تنظیم شده است می باشد. عنوان این بسته آموزشی، آموزش درخت ها (Expression Trees) در سی شارپ 10 است که با نام اصلی Expression Trees in C# 10 از شرکت OriginalProducerPlaceholder منتشر شده است.

یک Expression Tree چیست؟

به بیان ساده expression tree کد را در یک ساختار داده ای درخت مانند نشان می دهند، به طوری که هر گره یک عبارت یا expression است. یک expression می تواند یک فراخوانی متد یا method call و یا یک عملیات باینری مانند x < y باشد. می‌توانید کدهایی را که با expression tree نشان داده شده‌اند کامپایل و اجرا کنید. این قابلیت امکان ایجاد تغییرات به صورت پویا بر روی کدهای در حال اجرا شدن، اجرای کوئری های LINQ در پایگاه داده های مختلف و همچنین ایجاد پرس و جوهای پویا را فراهم می کند. expression tree همچنین در محیط اجرا زبان پویا و یا dynamic language runtime که آن آن DLR نیز می گویند به منظور ایجاد قابلیت همکاری و یا interoperability بین زبان‌های پویا و محیط دات ‌نت و همچنین فعال کردن کامپایلرها برای انتشار expression tree به جای زبان میانی مایکروسافت (MSIL) استفاده می‌شوند. می توانید از کامپایلر سی شارپ یا ویژوال بیسیک به منظور ساختن یک expression tree بر اساس یک anonymous lambda expression استفاده کنید. ضمناً، می توانید expression tree را به صورت دستی با استفاده از فضای نام System.Linq.Expressions ایجاد کنید.

Expression Trees in C# 10 Snapshot

ایجاد درخت های بیان از عبارات لامبدا

هنگامی که یک lambda expression به متغیری از نوع Expression انتساب داده می شود، کامپایلر کدی را برای ساخت یک expression tree که بیانگر آن lambda expression خاص است را منتشر می کند. کامپایلر سی شارپ می تواند expression tree ها را فقط از expression lambda ها ( و یا lambda های تک خطی) تولید کند. به عبارت دیگر، کامپایلر نمی تواند statement lambda (یا lambda های چند خطی) را parse کند. مثال‌ زیر نشان می‌دهند که چگونه می‌توان از کامپایلر سی شارپ برای ساختن یک expression tree که بیانگر یک lambda expression برای عبارت num => num < 5 است استفاده کرد.

Expression<Func<int, bool>> lambda = num => num < 5;

تغییرناپذیری و یا Immutability در Expression Tree ها

باید بدانید که expression tree باید تغییر ناپذیر و یا immutable باشد. این بدان معنی است که اگر می خواهید یک expression tree را تغییر دهید، باید یک expression tree جدید را با کپی کردن expression tree موجود و جایگزینی node ها در آن بسازید. می توانید از بازدیدکننده درخت عبارت و یا expression tree visitor برای پیمایش کردن expression tree موجود استفاده کنید.

کامپایل Expression Tree ها

می توانید از نوع داده ای Expression و متد Compile آن به منظور کامپایل کردن یک expression tree به درون یک executable delegate استفاده کنید. مثال کد زیر نحوه کامپایل یک expression tree و اجرای کد حاصل شده را نشان می دهد.

// Creating an expression tree.

Expression<Func<int, bool>> expr = num => num < 5;

// Compiling the expression tree into a delegate.

Func<int, bool> result = expr.Compile();

// Invoking the delegate and writing the result to the console.

Console.WriteLine(result(4));

// Prints True.

// You can also use simplified syntax

// to compile and run an expression tree.

// The following line can replace two previous statements.

Console.WriteLine(expr.Compile()(4));

// Also prints True.

سرفصل مطالب آموزش ویدئویی آموزش ویدئویی درخت ها (Expression Trees) در سی شارپ

فصل اول: مقدمه دوره آموزشی

  • مقدمه دوره آموزشی

فصل دوم: بررسی ماهیت Expression Tree ها

  • مقدمه
  • معرفی Delegate ها و Function ها و Expression ها
  • آموزش عملی: کار کردن با Delegate ها
  • مقدمه
  • آموزش عملی: کار با Func Delegate ها و Action Delegate ها در سی شارپ
  • بررسی Lambda Function ها
  • آموزش عملی: کار کردن با Lambda ها
  • جمع بندی

فصل سوم: کار کردن با Expression Tree ها در سی شارپ

  • بررسی LINQ و ارتباط آن با Expression ها
  • آموزش عملی: استخراج کردن یک Lambda
  • معرفی کردن LINQPad
  • آموزش عملی: کار کردن با LINQPad
  • بررسی اینترفیس IEnumerable
  • آموزش عملی: تفاوت اینترفیس IEnumerable و IQueryable
  • بررسی انواع Expression ها
  • آموزش عملی: کار با انواع Expression ها
  • ایجاد کردن یک Expression Tree با شاخه ها و یا Branche های متعدد
  • آموزش عملی: اضافه کردن یک Branche به Expression Tree
  • جمع بندی

فصل چهارم: سفارشی سازی کردن Expression Tree ها

  • مقدمه
  • آموزش عملی: ایجاد یک پروژه اولیه
  • چالش فیلتر کردن پویا و یا Dynamic Filtering
  • آموزش عملی: پیاده سازی کردن Dynamic Expression برای فیلتر کردن
  • ایجاد کردن حلقه های تکرار
  • آموزش عملی: ایجاد فیلترینگ پیشرفته با Operator ها
  • آموزش عملی: ایجاد کردن یک Expression Tree به صورت Generic
  • انجام عملیات Parsing بر روی Lambda ها
  • آموزش عملی: انجام عملیات Parsing بر روی Lambda ها
  • حرکت به سمت ایجاد کردن یک Scripting Engine با Expression Tree
  • آموزش عملی: ایجاد کردن یک اسکریپت ساده
  • جمع بندی
دسته های محصولات

افزودن به سبد خرید