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

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

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

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

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

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

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


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

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

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

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


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

همچنين يك متد سازنده براي اين كلاس ايجاد مي كنيم تا مقدار اوليه فيلد هاي شيئ را برابر با مقادير مورد نظر كاربر قرار دهد .

براي اينكه مشخص كنيم يك كلاس از قراردادهاي يك اينترفيس خاص پيروي مي كند بايد نام اينتـرفيس را بعـد از كـاراكتر :
در مقابل نام كلاس ذكر كنيم، دقيقاً مشابه مشخص كردن يك كلاس پايه براي كلاس .
البته دقت كنيد كه در وراثت هر كلاس فقـط مي توانست شامل يك كلاس پايه باشد، اما هر كلاس مي توانند چندين اينترفيس را در خود به كار ببرد.
به عبارت ديگر بـر خـلاف وراثت، يك كلاس مي توانند از قواعد چندين اينترفيس پيروي كند و متدهاي تعيين شده در آنها را در خود ايجاد كنـد .
بـراي اينكـه مشخص كنيم كلاس Financial از اينترفيس IStorable استفاده مي كند، تعريف كلاس را به صـورت زيـر تغييـر مي دهيم :

حال بايد يك متد به نام RetrieveData در كلاس ايجاد كنيم كه اطلاعات مهم كلاس را در قالب رشـته برگردانـد .
ايـن متد بايد از نوع Public باشد و همچنين نبايد پارامتري را دريافت كند، در غير اين صورت هنگام كامپايل با خطا مواجه خواهيـد شد .
بنابراين متدي را به صورت زير به برنامه اضافه مي كنيم :

در اين متد نيز مقادير موجود در فيلد هاي كلاس را در داخل يك متغير رشته اي قرار داده و آن را برمي گردانيم .
حال بايـد خاصـيتی كه در اينترفيس مشخص شده است را نيز در كلاس ايجاد كنـيم .
ايـن خاصـيت در اينتـرفيس داراي بخـشهاي get و set است، پس در كلاس نيز بايد داراي اين بخشها باشد، به عبارت ديگر بايد خواندني-نوشتني باشد.

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

اكنون بايد مشخص كنيم كه اين كلاس نيز از قواعد موجود در اينترفيس IStorable پيروي مي كند .
براي اين كار هماننـد كلاس Financial ،نام اينترفيس را در مقابل نام كلاس ذكر مي كنيم .
به اين ترتيب بايد متـد RetrieveData و همچنين خاصيت SavePath را نيز در كلاس ايجاد كنيم .

بعد از تمام شدن طراحي كلاسهاي مورد نياز در برنامه، بايد قسمتي را براي بررسي نحوه عملكرد آن بنويسيم .
در متد Main ابتـدا دو شيئ از نوع Financial و Employees ايجاد كرده و اطلاعات آنها را بـا اسـتفاده از متـد WriteLine بـه كاربر نمايش مي دهيم:

حال به قسمتي مي رسيم كه راحتي كار با اينترفيس ها را مي توانيد به وضوح درك كنيـد .
همـانطور كـه گفـتم هنگـام ايجـاد متـد Save ،براي ما تفاوتي ندارد كه چه شيئ اي به اين متد فرستاده مي شود بلكه فقط مي خواهيم شيئ اي كـه فرسـتاده مـي شـود داراي متدي به نام RetrieveData باشد تا اطلاعات مهم آن در قالب رشته برگرداند .
همچنين مي خـواهيم ايـن شـيئ داراي خاصيتي به نام SavePath باشد كه آدرس ذخيره شدن فايل را برگرداند .
بنابراين به راحتي مي توانيم بـه متـد Save بگوييم پارامتري كه دريافت مي كند حتما بايد از قواعد اينترفيس IStorable پيروي كرده باشد .

نكته اي كه بايد به آن توجه كنيد اين است كه در بدنه ي متد Save فقط به خاصيت ها و متـد هـايي از شـيئ obj دسترسـي داريم كه در اينترفيس IStorable تعريف شده اند .

براي مثال اگر شيئ اي از نـوع Employees را بـه متـد Save بفرستيم، درون اين متد فقط به خاصيت SavePath و متد RetrieveData از آن شيئ دسترسـي خـواهيم داشـت و نمي توانيم به مقدار فيلد EmployeeID دسترسي داشته باشيم (با وجود اينكه اين فيلد از نوع public است ).

دليل ايـن امر هم كاملاً واضح است .

در هنگام تعريف متد مشخص كرده ايم كه اشيايي كه به متد فرستاده مي شوند فقط بايد داراي متد هـا و خاصيتهاي تعريف شده در اينترفيس IStorable باشند، بنابراين نمي توانيم انتظار بيشتري از پارامترهاي فرستاده شده به اين متد داشته باشيم .

در بدنه ي متد هم كافي است با استفاده از متد RetrieveData اطلاعات مهم پـارامتر فرسـتاده شـده را بدست آوريم، سپس با اسـتفاده از متـد WriteAllText در كـلاس File ،اطلاعـات را در آدرسـي كـه درون كـلاس مشخص شده است قرار مي دهيم :

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

براي مثال استفاده از اينترفيس زير در برنامه موجب بروز خطا خواهد شد :

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

برای ادامه آموزش ها به قسمت صد و سی و هشتم بروید.


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

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

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

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

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

soroush کانال سروش

کانال آی گپ