نمایش نتایج 1 تا 7 از 7

نام تاپیک: Lambda expressions چیه ؟

  1. #1
    کاربر دائمی آواتار mdssoft
    تاریخ عضویت
    خرداد 1386
    محل زندگی
    تهران / ساری
    پست
    392

    Tick Lambda expressions چیه ؟

    سلام به همگی .
    بچه ها جایی مطلبی در مورد Lambda expressions خوندم درست نفهمیدم چیه .
    می تونید واضح بگید چی هست ؟

  2. #2
    کاربر دائمی آواتار mohammad272005
    تاریخ عضویت
    مرداد 1386
    محل زندگی
    تهران
    پست
    639

    نقل قول: Lambda expressions چیه ؟

    lambda روش جديد و كوتاه delegate نويسي تو C#‎ 3.0 هست كه كارو خيلي آسون ميكنه:
    C#‎ 2:IEnumerable<DataRow> rows = Enumerable.Where(Enumerable.Cast<DataRow>(dt.Rows)  , delegate(DataRow row) { return row["Id"] == 5; });

    C#‎ 3:var rows = dt.Rows.Cast<DataRow>().Where(row => return row["Id"] == 5);

  3. #3
    کاربر دائمی آواتار mdssoft
    تاریخ عضویت
    خرداد 1386
    محل زندگی
    تهران / ساری
    پست
    392

    نقل قول: Lambda expressions چیه ؟

    ممنون آقا محمد . معلومه خیلی خوب مسلط هستی.
    اما من کدت رو نفهمیدم . میشه در مورد کدت کمی توضیح بدی تا من فرقشون رو بهتر بفهمم .

  4. #4
    کاربر دائمی آواتار linux
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    تهران
    پست
    2,313

    نقل قول: Lambda expressions چیه ؟

    نقل قول نوشته شده توسط mdssoft مشاهده تاپیک
    ممنون آقا محمد . معلومه خیلی خوب مسلط هستی.
    اما من کدت رو نفهمیدم . میشه در مورد کدت کمی توضیح بدی تا من فرقشون رو بهتر بفهمم .
    همه rowهایی که ID شان =5 هست را بر می گرداند

  5. #5
    کاربر دائمی آواتار mdssoft
    تاریخ عضویت
    خرداد 1386
    محل زندگی
    تهران / ساری
    پست
    392

    نقل قول: Lambda expressions چیه ؟

    اما مگه delegate نیست ؟

  6. #6

    نقل قول: Lambda expressions چیه ؟

    سلام دوست عزیز ،
    برای درک بهتر ، حتما" مطلب زیر را مطالعه نمایید :
    http://weblogs.asp.net/scottgu/archi...pressions.aspx
    I've just started tweeting!
    @Alireza_Maddah

  7. #7
    کاربر دائمی آواتار mohammad272005
    تاریخ عضویت
    مرداد 1386
    محل زندگی
    تهران
    پست
    639

    نقل قول: Lambda expressions چیه ؟

    با سلام
    ببخشيد كه مدتي بخاطر مشغله كاري نتونستم دوستان رو زيارت كنم.
    عرض كنم به حضور همه بزرگواران كه
    C#‎ 2:IEnumerable<DataRow> rows = Enumerable.Where(Enumerable.Cast<DataRow>(dt.Rows)  , delegate(DataRow row) { return row["Id"] == 5; });

    توي اين كد فرض كردم يه كلاس به نام Enumerable وجود داره (كه البته توي NET 3.5. به NET 2.0. الحاق ميشه) كه حاوي يه متد با كد تقريبي زير:

    public
    staticclassEnumerable
    {
    publicstaticIEnumerable<TSource> Where<TSource>(IEnumerable<TSource> source, Predicate<TSource> predicate)
    {
    foreach (TSource item in source)
    if (predicate(item))
    yieldreturn item;
    }
    publicstaticIEnumerable<TSource> Cast<TSource>(IEnumerable source)
    {
    foreach (TSource item in source)
    yieldreturn item;
    }
    }
    .
    .
    .

    متد where، فقط اقلامي رو برميگردونه كه توي شرط predicate صدق كنن. cast هم كه تو اوج سادگي فقط با تبديل آيتمهاي يه IEnumerable به TSource، به كمك Where مياد. anonymouse methodي هم كه بصورت delegate براي متد Where ميره دقيقا مشابه where clouse توي SQL عمل ميكنه.
    و كد
    C#‎ 3:var rows = dt.Rows.Cast<DataRow>().Where(row => return row["Id"] == 5);
    هم 100% كد C#‎ 2.0 هست كه تحت قوانين C#‎ 3.0 نوشته شده. يعني به جاي ورش قديمي lambda expression، جايگزين anonymouse method شده.
    موفق باشيد

برچسب های این تاپیک

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •