متد lambda expression در #C

جمعه 10 مهر 1394

lambda expression متدهایی بی نام هستند که شما میتوانید با حداقل کد نویسی آن را ایجاد کنید. lambda Expressions ها را میتوان یک تکامل از روش های Anonymous دانست.

متد lambda expression در #C

 lambda expression متدهایی بی نام هستند که شما میتوانید با حداقل کدنویسی ان را ایجاد کنید. lambda Expressions ها را میتوان یک  تکامل از روش های Anonymous دانست.

Lambda expressions به عنوان delegates

خوبی این گونه متدها این است که کوتاه و خوانا هستند.و شما تقریبا میتوانید همه چیز را با این متدها پیاده سازی کنید .

بیایید کار را با ایجاد درخت expression انجام دهیم .بسیار ساده است که به ما بگوید آیا عدد منفی است.

ابتدا پارامترهای expression را مینویسیم

ParameterExpression numberParameter = Expression.Parameter(typeof(int), "n");

یک ثابت با مقدار صفر تعریف میکنیم

ConstantExpression zero = Expression.Constant(0, typeof(int));

ایجاد گره متشکل از پارامترهای ورودی و مقدار zero

BinaryExpression numberLessThanZero = Expression.LessThan(numberParameter, zero);

تعریف expression  و پارامترهای ورودی می باشد

Expression<Func<int, bool>> isNegativeExpression = Expression.Lambda<Func<int, bool>>(
        numberLessThanZero,
        new ParameterExpression[] { numberParameter });

قبل از استفاده ما نیاز به کامپایل کردن داریم

Func<int, bool> compiled = isNegativeExpression.Compile();

 و در نهایت از متد های ایجاد شده تست میگیریم

Console.WriteLine(compiled(-1));    // True
Console.WriteLine(compiled(0));     // False
Console.WriteLine(compiled(1));     // False

آموزش سی شارپ

فایل های ضمیمه

برنامه نویسان

نویسنده 3355 مقاله در برنامه نویسان
  • C#.net
  • 3k بازدید
  • 5 تشکر

کاربرانی که از نویسنده این مقاله تشکر کرده اند

در صورتی که در رابطه با این مقاله سوالی دارید، در تاپیک های انجمن مطرح کنید