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

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

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

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

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

حضرت محمد (ص) : داناترین مردم کسى است که دانش دیگران را به دانش خود بیفزاید.

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


به نام پروردگار جهان

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

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

قسمت صد و صد و سی و سوم


ادامه قسمت صد و سی و دوم.

البته در اين قسمت درگير نحوه ي پياده سازي اين متد نمي شويم، بلكه فقط مي خـواهيم نحـوه override كـردن متـدهاي abstract در كلاس مشتق شده را توضيح دهيم .
بنابراين در اين متد، فقط در خروجي چاپ مي كنيم كه يك ليـست بـاكس با مشخصات معين شده رسم شد .
حال كه كنترل اول را ايجاد كرديم، به سراغ كنترل بعدي كه يك Button است مي رويم .
براي ايجاد اين كنتـرل نيـز هماننـد كنترل ListBox ،يك كلاس به نام Button ايجاد كرده و كلاس Window را به عنوان كلاس پايه ي آن مـشخص
مي كنيم .

بقيه موارد اين كلاس نيز مشابه كلاس ListBox است و هيچ ابهامي در آن وجود ندارد .
البته دقت كنيـد در ايـن كـلاس نيـز همانند كلاس ListBox ،اگر متد DrawWindow را override نكنيم، با خطاي زمـان كامپايـل مواجـه خـواهيم
شد.

حال كه كنترلهاي مورد نظرمان را ايجاد كرديم، بايد آنها را در برنامه تست كنيم .
براي اين كار، ابتدا دو شيئ از نـوع ListBox و يك شيئ نيز از نوع Button ايجاد مي كنيم .
سپس با فراخواني متد DrawWindow در آنها، اين كنترل ها را در صفحه نمايش مي دهيم .
با فراخواني متد DrawWindow در اين اشيا، آنها در صـفحه رسم مي شوند .

نكته:
از يك كلاس abstract ،مي توان يك كلاس abstract ديگر مشتق كرد .
براي مثال تصور كنيد مي خواهيد كلاسي به نام Button ايجاد كنيد، امـا اجـازه ندهيـد كـسي از ايـن كـلاس شـيئ را ايجـاد كنـد .
بلكـه كـلاس هـايي ماننـد Command ،RadioButton و … را از اين كلاس مشتق كنيد .
بنابراين كـلاس Button خـود بايـد يـك كـلاس abstract باشد كه از كلاس abstract ديگري به نام window مشتق مي شـود در ايـن حالـت نيازي نيست كه متدهاي abstract كلاس پايه را در كلاس مشتق شده override كنيد و مي توانيد از پيـاده سـازي متد DrawWindow در كلاس Button صرفنظر كنيد .



كلاسهاي sealed:

در قسمت قبل با كلاسهاي abstract آشنا شديد و مشاهده كرديد كه چگونه مي توان كلاس هايي داشت كه فقط به عنوان كلاس پايه استفاده شوند و نتوان شيئ اي از آنها نمونه سازي كرد .

كلاسهاي sealed دقيقاً مفهومي عكس كلاسهاي abstract دارند.
به عبـارت ديگـر كلاسـهاي sealed كـلاس هايي هستند كه نمي توان آنها را به عنوان كلاس پايه مورد استفاده قرار داد و از آنها كلاس جديدي را مشتق كرد، بلكه فقـط مـي توان از آنها براي نمونه سازي اشيا استفاده كرد .
براي تعريف يك كلاس sealed بايد از كلمه ي كليـدي sealed قبـل از تعريف كلاس همانند كد زير استفاده كنيد .

Interface

به بيان ساده مـي تـوانم بگـويم كـه interface يـك قـرارداد در نـوع رفتـار يـك كـلاس اسـت .
هـر كلاسـي كـه يـك interface را بـه كـار ببـرد، در حقيقـت تـضمين مـي كنـد پيـاده سـازي تمـام متـد هـا، خاصـيت هـا و … كـه در آن interface وجود دارد را در خود ايجاد كند .

فرض كنيد در حال نوشتن برنامه اي براي كنترل امور داخلي يك شركت هستيد .
در نوشتن چنين برنامه اي مسلماً بايد از كلاسـهاي زيادي استفاده كنيد، براي مثال:

  • يك كلاس براي كنترل امور مالي شركت به نـام Financial،
  • كلاسـي بـراي كنتـرل امـور كارمندان شركت به نام Employees ،
  • كلاسي براي كنترل امور چـاپ در برنامـه بـه نـام Print
  • و …

حـال ممكـن اسـت بخواهيد متدي در برنامه ايجاد كنيد تا اطلاعات مهمي كه در بعضي از كلاسها قرار دارند را در ديسك ذخيره كند.
خوب، واضح اسـت كه كلاسي مثل كلاس Print اطلاعاتي براي ذخيره شدن در ديسك ندارد، اما كلاسي مانند كـلاس Financial و يـا كلاس Employees داراي اطلاعات مهمي هستند كه بايد ذخيره شوند تا در صـورت از دسـت رفـتن آنهـا در برنامـه، بتـوان اطلاعات را بازيابي كرد.
سوالي كه در اينجا پيش مي آيد اين است كه اين متد را بايد چگونه نوشت تا بتواند اين كار را انجام دهد؟

پاسخ این سوال کلیدی در زبان برنامه نویسی سی شارپ را در قسمت بعدی ببینید.


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

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

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

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

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

soroush کانال سروش

کانال آی گپ