متد lambda expression در #C
جمعه 10 مهر 1394lambda expression متدهایی بی نام هستند که شما میتوانید با حداقل کد نویسی آن را ایجاد کنید. lambda Expressions ها را میتوان یک تکامل از روش های Anonymous دانست.
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
- C#.net
- 3k بازدید
- 5 تشکر