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

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




صفحه 4 از 29 اولاول 1234567814 ... آخرآخر
نمايش نتايج 31 به 40 از 286

نام تاپيک: آموزش كامل و جامع #C : سي شارپ

  1. #31
    داره خودمونی میشه mohsennowruzi's Avatar
    تاريخ عضويت
    Feb 2006
    پست ها
    124

    پيش فرض مقدمه اي بر سي شارپ : قسمت بيستم

    Delegates

    Delegates در سي شارپ روشي مطمئن و typesafe را براي بكار گيري مفهوم function pointer ارائه مي دهند. يكي از ابتدايي ترين استفاده هاي function pointers پياده سازي callback مي باشد. اما در ابتدا لازم است تا با اصول اوليه ي كاري آن آشنا شويم.

    مثال يك :
    يك delegate چگونه تعريف و استفاده مي شود؟
    Delegate يك شيء است كه بيانگر يك تابع مي باشد بنابراين مي تواند بعنوان آرگومان ورودي يك تابع ديگر و يا عضوي از يك كلاس بكار رود.
    در زبان "function-pointer" ، Func1() اشاره گري به Func2() را بعنوان پارامتر دريافت كرده و نهايتا آنرا فراخواني مي كند.
    در زبان "delegate" ، Func1() يك شيء delegate از Func2() را دريافت كرده و سپس آنرا فراخواني مي كند.
    در مثال زير از دو تابع براي شرح اين مطلب سود جسته شده است:
    Func1() از delegate استفاده مي كند.
    Func2() يك delegate است.

    ( شماره گذاري خطوط ، در كد زير ، صرفا براي راحت تر شدن توضيحات در مورد آنها است و لزومي به تايپ آنها در برنامه ي اصلي نيست. )
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

    LINE 02
    يك شيء delegate را براي Func2 تعريف مي كند.

    LINE 04-06
    تابعي را تعريف كرده است كه آرگومان ورودي آن از نوع Delg است.

    LINE 07-09
    تابعي را تعريف مي كند كه بايد به صورت delegate به تابع ديگر فرستاده شود.

    LINE 10-14
    تابع Main اجراي برنامه را با ايجاد يك شيء delegate براي Func2 آغاز كرده و سپس تابع Func1 را فراخواني مي كند.

    مثال 2:
    چگونه مي توان از delegates در كارهاي عملي استفاده كرد؟

    طرح يك مساله:
    شخصي تقاضاي ثبت نام در يك مؤسسه ي آموزشي و همچنين تقاضاي كاريابي در يك شركت را داده است. هر كدام از اين نهادها روشي خاص خود را براي ارزيابي شخص دارند.

    راه حل (با روشي شيء گرا):
    شخص مشخصاتي همچون سن / جنس / ميزان تحصيلات قبلي / تجربيات كاري و مدارك مرتبط دارد.
    مؤسسه ي آموزشي تعدادي از اين مشخصات را براي ارزيابي شخص استفاده مي كند و اين امر در مورد شركت ياد شده نيز صادق است.
    شيء شركت و شيء آموزشگاه هر كدام توابع ارزيابي خاص خودشان را پياده سازي مي كنند.
    شخص ، اينترفيسي واحدي را در اختيار شركت / آموزشگاه براي ارزيابي خود قرار مي دهد.

    پياده سازي (با استفاده از سي شارپ):
    ما delegate‌ايي را تعريف مي كنيم كه بيانگر اينترفيسي است كه به شركت و آموزشگاه اجازه ي چك كردن شخص را مي دهد.
    سه كلاس school و company و person را تعريف مي نماييم.
    كلاس test را براي آزمودن اين موارد ايجاد مي كنيم.
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    LINE 03
    Delegate مورد نياز را تعريف مي كند.

    LINE 04-23
    كلاس person را تعريف مي كند. اين كلاس تابعي پابليك را ارائه مي دهد كه آرگومان ورودي آن از نوع GetChecker مي باشد.

    LINE 24-30
    كلاس school را تعريف مي كند و سپس تابعي را كه delegate است ارائه مي دهد.

    LINE 31-37
    كلاس company را تعريف مي كند و سپس تابعي را كه delegate است ارائه مي دهد.

    LINE 38-36
    كلاس test را پياده سازي مي نمايد. سپس يك شيء شخص ساخته مي شود. در ادامه new GetChecker(School.SchoolCheck) و new GetChecker(Company.CompanyCheck) شيء ايي را ايجاد مي كند از نوع delegate مورد نياز و آنرا به تابع CheckMe مي فرستد. خروجي نتيجه ي ارزيابي اين شخص مي باشد.

    اگر چك كردن اشخاص بيشتري نياز باشد به اين صورت عمل مي شود:
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    مثال 3 :
    Delegates در تعامل بين دات نت فريم ورك و سي شارپ چه نقشي دارد؟

    طرح يك مساله:
    نمايش دادن ميزان پيشرفت خواندن يك فايل هنگامي كه حجم فايل بسيار زياد است.

    راه حل ( با استفاده از سي شارپ):
    در مثال زير از كلاس FileReader براي خواندن يك فايل حجيم استفاده شده است. هنگاميكه برنامه مشغول خواندن فايل است 'Still reading.. را نمايش مي دهد و در پايان 'Finished reading..'. را عرضه مي كند.
    براي اينكار از فضاي نام System.IO استفاده شده است. اين فضاي نام حاوي delegate ايي مهيا شده براي ما مي باشد. بدين ترتيب مي توانيم به دات نت فريم ورك بگوييم كه ما تابعي را تعريف كرده ايم كه او مي تواند آنرا فراخواني كند.
    سؤال: چه نيازي وجود دارد تا دات نت فريم ورك تابع ما را فراخواني و اجرا كند؟ با استفاده از تابع ما كه دات نت فريم آنرا صدا خواهد زد در طول خواندن فايل به ما گفته مي شود كه بله! من هنوز مشغول خواندن هستم! به اين عمليات Callback نيز گفته مي شود. به اينكار پردازش asynchronous نيز مي گويند!
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

    LINE 02
    فضاي نام System.IO را به برنامه ملحق مي كند. اين فضاي نام به صورت خودكار حاوي تعريف delegate زير مي باشد:

    public delegate void AsyncCallback (IAsyncResult ar);

    LINE 03-10
    تعريف كلاس

    LINE 06
    شيء delegate را تعريف مي كند.

    LINE 07-10
    سازنده ي كلاس را پياده سازي مي كنند. در اينجا ما تصميم گرفته ايم كه بافري حاوي 256 بايت را در هر لحظه بخوانيم.

    LINE 09
    شيء delegate نمونه سازي شده است.

    LINE 18-23
    readFile را پياده سازي مي كند.

    LINE 12-16
    نحوه ي استفاده از شيء IAsyncResult را بيان مي كند.

    LINE 12
    sInput.EndRead(result) تعداد بايتهاي خوانده شده را بر مي گرداند. اين خواندن تاجايي كه تعداد بايتهاي خوانده شده صفر است ادامه پيدا مي كند و در اينجا 'Finished reading..' اعلام مي گردد.

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


  3. #32
    داره خودمونی میشه mohsennowruzi's Avatar
    تاريخ عضويت
    Feb 2006
    پست ها
    124

    پيش فرض مراجع

    خوب بيست قسمت آموزش سي شارپ از اين سايت ها بود:

    منبع با واسطه:
    [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]

    منبع بي واسطه
    [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]

    اگه فرصت شد همه آموزش ها را در قالب 1 فايل PDF مي زارم

    تا بعد

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


  5. #33
    داره خودمونی میشه mohsennowruzi's Avatar
    تاريخ عضويت
    Feb 2006
    پست ها
    124

    پيش فرض

    دوباره سلام
    اين لينك دانلود مطالبي كه تا حالا تو اين تاپيك مطرح شده در قالب 1 فايل PDF

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


    اين هم لينك يه مقاله در مورد سي شارپ از آقاي فكري نجات

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

    سعي مي كنم چند تا مقاله ديگه هم در اين مورد تو چند روز آينده براتون بزارم

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


  7. #34
    آخر فروم باز WooKMaN's Avatar
    تاريخ عضويت
    Oct 2005
    محل سكونت
    Ķêŗmάņšĥąħ
    پست ها
    10,533

    پيش فرض

    محسن مرسي داري بد جور حال ميديها

  8. #35
    داره خودمونی میشه mohsennowruzi's Avatar
    تاريخ عضويت
    Feb 2006
    پست ها
    124

    پيش فرض

    سلام
    خواهش مي كنم
    اين لينك دانلود كامل سايت dev.irكه بخشي از مطالب از اون نقل شده

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

    در ضمن يه تاپيك هم با اين موضوع وجود داره
    [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]

  9. #36
    آخر فروم باز D E V I L's Avatar
    تاريخ عضويت
    Dec 2005
    پست ها
    1,393

    پيش فرض

    اگه منبع را ذكر مي كردي بد نبود !!!

  10. #37
    داره خودمونی میشه mohsennowruzi's Avatar
    تاريخ عضويت
    Feb 2006
    پست ها
    124

    پيش فرض

    منبع همه مطالب ذكر شده
    كافي به شماره 32 نگاه كنيد

  11. #38
    Banned
    تاريخ عضويت
    Jun 2006
    پست ها
    7

    12

    عالي بود.

    ممنونم

    من مشتاقم آقا....بازم در اين زمينه مطلب بزارين.
    منم يه چيزايي بلدم..كمك اگه خواستين بهم بگيد.(شايد موثر باشم)

  12. #39
    حـــــرفـه ای mahsoft's Avatar
    تاريخ عضويت
    Aug 2004
    محل سكونت
    پيش بابايی شماره‌شناسنامه: پلــــــاک ¼
    پست ها
    6,359

    8 ممنون از زحمتی که می کشید

    خیلی خوبه ولی چی بگم که من ......

  13. #40
    Banned Satrikon's Avatar
    تاريخ عضويت
    Jan 2006
    محل سكونت
    تهران
    پست ها
    620

    پيش فرض

    ببخشيد آقا نويد(ووك من)(رامبد)(نيش نيش)
    من pdf اينو دارم
    شما كپي-پيست كردي؟
    خب چرا كامل نزاشتي؟؟؟
    و در n پست گزاشتي؟!

Thread Information

Users Browsing this Thread

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

User Tag List

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

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