تبلیغات
banner
banner
banner
تبلیغات
banner

فیلم های آموزشی : 36 +

تعداد کاربران : 34 +

تعداد کل مطالب : 338 +

تعداد نظرات : 29 +

حضرت محمد (ص) : ز گهواره تا گور دانش بجوی .

آموزش مقدماتی تا پیشرفته سی شارپ بخش صد و پنجم


به نام خدایی که در این نزدیکی است.

آموزش مقدماتی تا پیشرفته سی شارپ بخش صد و پنجم

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

قسمت صد و پنجم


كپسولي بودن :

مفهوم اصلي كه در پشت شيئ -گرايي قرار دارد كپسولي بودن است.

اين مفهوم با وجود ساده بودن، از اهميـت زيـادي برخـوردار است.

ايده كلي كه كپسولي بودن ارائه مي دهد به اين صورت است كه رفتار يك شيئ تا حد ممكن بايد دور از ديد كـاربر باشـد .

بـه عبارت ديگر تا زماني كه لازم نباشد، كاربر نبايد متوجه شود كه يك شيئ چگونه درخواستهاي او را انجام مي دهد .

كنترل OpenFileDialog كه در قسمت های قبل از آن استفاده مي كرديم را به خاطر بياوريد .

هنگـامي كـه مـي خواسـتيم يكي از آنها را در صفحه نمايش دهيم، بعد از اينكه وضعيت آن را با استفاده از خاصيت ها تنظيم مي كرديم، از آن مي خواسـتيم كـه در صفحه نمايش داده شود (با استفاده از تابع ShowDialog .)

ولي همانطور كه مي دانيد آن شيئ هيچ اطلاعـاتي را در مـورد نحوه نمايش داده شدنش در صفحه بروز نمي داد و ما نيز نيازي به دانستن اين كه چگونه اين شيئ در صفحه نمايش داده مـي شـود نداشتيم.

اين مورد كه شيئ OpenFileDialog ،نحوه انجام دادن وظايفش را از كاربر پنهان مي كرد، جزئـي از كپـسولي بودن آن محسوب مي شود .

متد ها و خاصيت ها :

براي ارتباط با يك شيئ از متد ها و خاصيتهاي آن استفاده مي كنند.

در تعريف آنها مي توانيم بگوييم :

  • متد: روشهايي هستند كه به وسيله آن مي توان به يك شيئ گفت چگونه وظيفه خاصي را انجام دهد.
  • خاصيت ها: اعضايي از يك شيئ هستند كه ويژگيهاي آن را شرح مي دهند.

در قسمتهاي قبل، متد ها به عنوان قطعه كد هايي معرفي شده بودند كه مي توانستند وظيفـه مشخـصي را انجـام دهنـد .

البتـه ايـن تعريف درست است، اما تعريف بسيار ساده اي از يك متد است .

تعريف كامل متد كه فقط در برنامه نويسي شـيئ گـرا صـادق اسـت، عبارت است از:

كد هايي كه به يك شيئ مي گويند چگونه وظيفه مشخصي را انجام دهد .

بنابراين براي روشن كردن يك تلويزيون بايد متدي را پيدا كنيد كه اين كار را انجام دهد،

زيرا همانطور كه گفتم اين متـدها هـستند كه به يك شيئ مي گويند چگونه يك وظيفه مشخص را انجام دهند .

هنگامي كه متد مربوط به اين كار را فراخواني مي كنيد، فرض مي كنيد كه شيئ به واسطه اين متد مي داند كه چگونه درخواست شما را انجام دهد.

خاصيت ها نيز براي تنظيم حالتها و ويژگيهاي يك شيئ به كار مي روند .

در اين مورد نيز وظيفه شيئ است كه با توجه به حالتي كـه براي آن تعريف شده است عمل كند.

براي مثال هنگامي كه بخواهيد كانال يك تلويزيون را از ۴ به ۳ تغيير دهيد، كافي است مقـدار خاصيت مربوط به كانال را برابر ب ۳ قرار دهيد و تلويزيون بايد با توجه به مقدار اين خاصيت، تصوير را در صفحه نمايش دهد .

همانطور كه به خاطر داريد هنگام كار با شيئ OpenFileDialog در بخش كادرهاي محاوره اي، كافي بود كـه خاصـيت مربوط به متن نوار عنوان آن را برابر با مقدار دلخواه قرار دهيد .

بعد از آن، وظيفه شيئ OpenFileDialog محـسوب مـشد تا متن مشخص شده را در نوار عنوان نمايش دهد .

رويدادها :

رويدادها به عنوان عضوي از اشيا هستند كه پيغامي را آماده كرده و به ديگر بخشهاي برنامه مي فرستند .

زماني كه يـك مـورد قابـلتوجه براي يك شيئ رخ داد، آن شيئ رويدادي را فراخواني مي كند.

به عبارت ديگر به وسيله يك پيغام، بخشهاي ديگـر برنامـه را از اين رويداد مطلع كرده و همچنين اطلاعات لازم را نيز در مورد اين رويداد در اختيار اين بخشها قرار مي دهـد .

ايـن پيغـام فقـط بـه قسمتهايي از برنامه فرستاده مي شود كه پيش از اتفاق افتادن رويداد، از برنامه درخواست كرده باشند تا اين مـورد را بـه آنهـا اطـلاع دهد .

به عنوان مثال رويداد Click را كه در بخشهاي قبلي از آن استفاده مي كرديم در نظر بگيريد .

اين رويداد زماني رخ مي دهد كـه كاربر ماوس را روي كنترل برده و در آنجا كليك كند .

به اين ترتيب شيئ Button تمام اشـياي لازم را از رخ دادن ايـن رويـداد مطلع مي كند .

براي اينكه شيئ اي از اين رويداد مطلع شود، بايد قبل از آن به شـيئ Button بگويـد در صـورت رخ دادن ايـن رويداد به آن نيز اطلاع داده شود .

روش اين كار را در بخش های قبل نيز مشاهده كرديد .

براي استفاده از اين رويداد ابتدا تابعي را با قالبي خاص ايجاد مي كرديم و سپس به شيئ Button اطلاع مي داديم كه در صورت وقوع اين رويداد، تابع مشخص شده را اجرا كنـد (البتـه بيـشتر ايـن كارهـا بـه صورت اتوماتيك توسط ويژوال استوديو انجام مي شد ).

هنگامي كه كاربر روي كنترل Button كليـك مـي كـرد، ايـن كنتـرل توابعي كه مشخص شده بودند را فراخواني مي كرد و همچنين اطلاعات مورد نياز آنها را نيز به عنوان پارامتر به آنها ارسال مي كرد.


درباره نویسنده
سجاد اسدی
   سجاد اسدی

سجاد اسدی هستم دانشجوی رشته نرم افزار و علاقه مند به تدریس و یادگیری دروس مرتبط با تکنولوژی نرم افزار و اینترنت اشیاء جهت ارتباط با بنده مراجعه شود به آیدی سروش و تلگرام : @ordervira و پیج بنده در اینستاگرام instagram.com/sajjadred11 ""اللهم صل علی محمد و آل محمد"" برای شروع هیچ وقت دیر نیست. "الهم عجل لولیک الفرج"

دیدگاه بگذارید

avatar
  اشتراک  
اطلاع رسانی

aparat کانال آپارات

soroush کانال سروش

کانال آی گپ