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

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

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

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

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

حضرت علی (ع) : دانش اندک همراه با عمل بهتر از علم بسیار بدون عمل است.

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


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

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

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

قسمت صد و شانزدهم


چگونه كار مي كند؟

در اين قسمت فقط متد ساده اي را به كلاس اضافه كرده ايم كه با توجه به خاصيت Speed ،در صورت غير صفر بودن آن مقدار
true و در صورت صفر بودن آن مقدار false را برمي گرداند .

ممكن است در ابتدا از حالت نوشته شدن اين تابع تعجب كنيد و اين سوال پيش بيايـد كـه چـرا دسـتور return دوم در بخـش
else قرار داده نشده است .

همانطور كه مي دانيد دستور return براي برگرداندن مقداري توسط تابع، به كـدي كـه تـابع را فراخواني كرده است به كار مي رود .

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

پس در اينجـا اگـر مقـدار Speed برابـر بـا صـفر بـود، برنامـه مقـدار false را برمي گرداند و دستور return true را نيز اجرا نمي كند.

اما اگر مقدار Speed مخالف صفر بود، برنامه به خط بعد از if مي آيد كه در اين حالت بايد مقدار true را برگرداند .

البته اين نوع نوشتن كد فقط باعث كوتاهي برنامه مي شـود و در سرعت اجراي آن هيچ تاثيري ندارد .

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

اما قبل از اينكه شروع كنيد و براي هر مسئله اي در كلاس يك متد ايجاد كنيد،

توجه داشته باشيد كه هر چه تعداد متدها و خاصيت هاي يك كلاس بيشتر باشند، كار با آن مشكل تر خواهد بود .

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

ممكن است تصور كنيد به علت اينكه متدي كه در اين قسمت تعريف كرديم باعث ايجاد هيچ رفتاري در برنامه نمي شود، بهتر بود از يك خاصيت در اين مورد استفاده مي كرديم . بله، مي توانستيم براي اين مورد از يك خاصيت استفاده كنيم. اما، استفاده از متد در اين قسمت باعث مي شود كاربر بفهمد كه اين نتيجه به صورت مستقيم از يك فيلد خوانده نمي شود، بلكه توسط شيئ محاسبه مي شود.

متدهاي سازنده

یكي از مهمترين جنبه هاي طراحي كلاسها، مفهوم متد سازنده در كلاس اسـت .

اين متدها شامل كـدهايي هـستند كـه هنگام نمونه سازي شدن يك شيئ اجرا مي شوند .

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

براي مثال بخواهيد به بعضي از خاصيت هاي آن مقـدار اوليـه نـسبت دهيـد، همانند خاصيت NumberOfDoors در كلاس Car .

متدهاي سازنده در كلاس متدهايي هستند كه نام آنها با نام كلاس يكي است .

همچنين نبايد براي اين متدها هيچ مقـدار بازگـشتي مشخص كرد (حتي void ). یك تابع سازنده براي كلاس Car ،متدي مانند زير خواهد بود :

امتحان كنيد: ايجاد يك متد سازنده

براي اينكه نحوه كاركرد متد سازنده را بررسي كنيم، بايد مقدار اوليه ۴ را از مقابل تعريـف numebrOfDoors_ حذف كنيم. در كلاس Car تغييرات مشخص شده در زير را وارد كنيد :

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

هر كدي كه در اين متد وارد كنيد، هنگام نمونه سا زي شئ اجـرا می شود .

نكته: تنظيم مقدار speed _با عدد صفر كاري بيهوده است، زيرا مقدار اين متغير به صو رت پيش فرض برابر با صفر مـي شـود .

اما براي تكميل شدن مثال، مقدار اين متغيير را نيز در اين مرحله تنظيم كرده ايم.

براي تست متد سازنده كلاس Car ،بهتر است زير برنامه جدا يي را در فايل Program.cs به صورت زير اضافه کنید تا اطلاعات يك شئ از كلاس را در صفحه نمايش دهد.

حال زير برنامه Main را به گونه اي تغيير دهيد تا متد DisplayCarDetails را فراخواني كند

برنامه را اجرا كنيد. پنجره اي چدید میبینید.

چگونگی کار کرد این متذ را در قسمت صد و هفدهم ببینید.


 


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

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

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

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

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

soroush کانال سروش

کانال آی گپ