تبلیغات :
ماهان سرور
آکوستیک ، فوم شانه تخم مرغی ، پنل صداگیر ، یونولیت
دستگاه جوجه کشی حرفه ای
فروش آنلاین لباس کودک
خرید فالوور ایرانی
خرید فالوور اینستاگرام
خرید ممبر تلگرام

[ + افزودن آگهی متنی جدید ]




نمايش نتايج 1 به 4 از 4

نام تاپيک: Anonymous method ها را فهمیدم و هم نفهمیدم

  1. #1
    آخر فروم باز
    تاريخ عضويت
    Jul 2009
    پست ها
    6,351

    پيش فرض Anonymous method ها را فهمیدم و هم نفهمیدم

    سلام

    از یک جهت فهمیدم نحوه استفاده چگونه هست و چطور میشه استفاده کرده ازشون.
    اما دلیل استفاده و اینکه خوب میشه یک متغیر از نوع کلاس مورد نظر تعریف کرد و اون متغیر رو برای اون متد فرستاد. چرا حتما متد بی نام؟

    چه لزومی بود حتما یک ساختار جدید تعریف کرد؟
    مثلا اینجا ببنید:
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

  2. این کاربر از Life24 بخاطر این مطلب مفید تشکر کرده است


  3. #2
    ناظر انجمن .NET Framework _H2_'s Avatar
    تاريخ عضويت
    Feb 2007
    محل سكونت
    یک جایی بین Framework و نارمک!
    پست ها
    4,746

    پيش فرض

    سلام
    برای انجام یک کار میتوان از روش های متعدد استفاده کرد و وجود راه کارهای متعدد بد نیست، یک امکان اضافه است.

    مثال
    برای کپی یک فایل میتوانید از کیبور (Ctrl+C / Ctrl+V) و یا راست کلیک ماوس و یا کشیدن و رها کردن استفاده کرد، چرا چند روش؟
    امکانات بیشتر، سادگی بیشتر، استفاده در شرایط متفاوت و...

    مثال دیگر
    دو دستور زیر چه تفاوتی دارند؟ وقتی دستور کاملتر بالایی وجود دارد چه نیازی به دستور خاص دومی وجود دارد؟
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    پس وجود راه کارهای متعدد و کوتاه بد نیست.
    پیش خودمان باشد(!) دهان یاوه گویان را هم خواهد بست که نگویند فلان زبان این کار(هرچند مسخره) را میکند ولی این یکی زبان امکانش را ندارد.
    موارد مهم را ول میکنند میچسبند به لنگ کفش میرزا !


    Anonymous Methods و Lambda شکل های خلاصه نویسی از توابع هستند که برای توابع تک خطه و استفاده در یک محل خاص کاربرد دارند و کدنویسی کمتر، ساده تر و واضح تری ارائه میدهند و کامپایلر به جای ما(برنامه نویس) آنها را بشکل توابع عادی تبدیل کرده و سپس کامپایل میکند پس اگر وجود هم نداشتند با یکی دو خط زیاد و کم قابل پیاده سازی بودند.

    چه لزومی بود حتما یک ساختار جدید تعریف کرد؟
    متوجه سوال نشدم، به مسئله قبل که ارتباطی ندارد؟! کدام ساختار مدنظرتان است؟ یعنی این کد چطور باید می بود؟

  4. 2 کاربر از _H2_ بخاطر این مطلب مفید تشکر کرده اند


  5. #3
    آخر فروم باز
    تاريخ عضويت
    Jul 2009
    پست ها
    6,351

    پيش فرض

    متوجه سوال نشدم، به مسئله قبل که ارتباطی ندارد؟! کدام ساختار مدنظرتان است؟ یعنی این کد چطور باید می بود؟


    ممنون از شما.
    منظورم هم الان به جای استفاده از متد بی نام،پس میتونیم روش عادی رو اینجا استفاده کنیم؟
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

  6. این کاربر از Life24 بخاطر این مطلب مفید تشکر کرده است


  7. #4
    ناظر انجمن .NET Framework _H2_'s Avatar
    تاريخ عضويت
    Feb 2007
    محل سكونت
    یک جایی بین Framework و نارمک!
    پست ها
    4,746

    پيش فرض

    سلام مجدد
    میبخشید، باید متوجه میشدم، گمانم دارم پیر میشوم! منظور شما نوع های بی نام هستند Anonymous Types

    Anonymous Methods
    [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]

    Anonymous Types
    [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]

    بطور خلاصه جواب همچنان همان است، امکانات بیشتر، مناسب تر برای کارهای کوچک و...

    مثلاً در LINQ هم lambda و هم anonymous types استفاده میشود:
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    و حالا بدون lambda و هم anonymous types و...
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    اجازه می دهید به من که بگویم کد اول ساده تر و واضح تر است؟
    اگر شما به روش دوم میگویید عادی، من ترجیح میدهم غیر عادی کدنویسی کنم!
    تازه در کد دوم باز هم از خلاصه نویسی Auto-Implemented Properties استفاده شد.
    شاید دو کد یک کار انجام دهند ولی زمان کدنویسی و امکان اشتباه و وضوح کد و... یکی نیست.


    نمیدانم توانستم جواب تان را قانع کننده بدهم یا خیر؟!
    شب خوش.

  8. 2 کاربر از _H2_ بخاطر این مطلب مفید تشکر کرده اند


Thread Information

Users Browsing this Thread

هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)

User Tag List

قوانين ايجاد تاپيک در انجمن

  • شما نمی توانید تاپیک ایحاد کنید
  • شما نمی توانید پاسخی ارسال کنید
  • شما نمی توانید فایل پیوست کنید
  • شما نمی توانید پاسخ خود را ویرایش کنید
  •