به بخش متدها خوش آمدید.
در این بخش ما قرار است متدها را بررسی کنیم و نگاهی داشته باشیم به اینکه چه کاری انجام می‌دهند و چطور می‌توانیم از آن‌ها استفاده کنیم.
و آن‌ها در هر زبان برنامه‌نویسی شیء‌گرا فوق‌العاده مهم هستند.
و ما قرار است شروع کنیم با بررسی تعریف آن‌ها، که از مستندات رسمی مایکروسافت است.
مایکروسافت.
یک متد یک بلوک کد است که شامل مجموعه‌ای از دستورات می‌باشد.
یک برنامه باعث می‌شود دستورات با فراخوانی متد و مشخص کردن هر آرگومان مورد نیاز متد اجرا شوند.
آرگومان‌ها.
در سی‌شارپ، هر دستور اجرا شده در بستر یک متد انجام می‌شود.
متد اصلی نقطه ورود برای هر برنامه سی‌شارپ است، و زمانی که برنامه شروع می‌شود توسط یا همان CLR فراخوانی می‌شود Common Language Runtime
و تا اینجا ما یک متد دیده‌ایم که دقیقا همین کار را انجام می‌دهد.
آن متد Main است، و هر زمان که برنامه را اجرا کنیم شروع به کار می‌کند.
پس ما از آن استفاده کرده‌ایم و هنوز متد مخصوص خودمان را ایجاد نکرده‌ایم، اما در ویدئوهای بعدی این کار را انجام خواهیم داد.
اما قبل از هر چیز، بیایید نگاهی بیندازیم به اینکه سینتکس یک متد چگونه به نظر می‌رسد.
ابتدا مشخص‌کننده دسترسی را دارید.
سپس نوع بازگشتی، و نام متد.
سپس داخل پرانتزها لیست پارامترها را دارید.
و در نهایت بدنه متد را دارید.
و مثل همیشه هنگام ساخت کلاس‌ها و متدها، همانطور که قبلاً توضیح دادم، شما آکولاد باز
و آکولاد بسته را دارید.
پس این سینتکس است.
اما همه این موارد چه هستند؟
مشخص‌کننده دسترسی چیست؟
نوع بازگشتی چیست؟
نام متد چیست و غیره.
و یک توضیح عالی در این مورد در Tutorials Point وجود دارد، و آن‌ها توضیح خیلی خوبی
در مورد مشخص‌کننده دسترسی داده‌اند.
این مشخص می‌کند که یک متغیر یا متد از یک کلاس دیگر قابل مشاهده باشد یا خیر.
یعنی زمانی که چندین کلاس ایجاد می‌کنید، می‌توانید به متدهایی دسترسی داشته باشید که مشخص‌کننده دسترسی خاصی دارند
و به بقیه دسترسی نخواهید داشت.
پس چندین نوع مشخص‌کننده دسترسی وجود دارد.
برای مثال، public.
public اگر از استفاده کنید، می‌توانید از یک کلاس دیگر به آن متد دسترسی داشته باشید.
اگر مثلاً از private استفاده کنید، نمی‌توانید.
و مشخص‌کننده‌های دسترسی دیگری هم وجود دارند که بعداً در دوره آن‌ها را پوشش خواهیم داد. سپس نوع بازگشتی.
نوع بازگشتی.
یک متد ممکن است مقداری را برگرداند، و ممکن است هم نه.
ضرورتی ندارد.
نوع بازگشتی همان نوع داده‌ای است که متد برمی‌گرداند.
یعنی اگر می‌خواهید متد چیزی برگرداند، باید مشخص کنید که چه نوع داده‌ای قرار است بازگردانده شود.
برای مثال اگر می‌خواهید یک عدد برگردد، می‌توانید از integer استفاده کنید.
اگر متد هیچ مقداری را برنگرداند، نوع بازگشتی آن void است.
پس در بعضی موارد متدی فقط باید کدی را اجرا کند و چیزی برنگرداند.
در این حالت به‌جای integer یا string یا double یا چیزهای مشابه، از void استفاده می‌کنید.
سپس نام متد را دارید.
نام متد یک شناسه یکتا است و به حروف بزرگ و کوچک حساس می‌باشد.
این نام نمی‌تواند با هیچ شناسه دیگری که در کلاس تعریف شده یکسان باشد.
پس باید یک نام خاص و یکتا بسازید، و منظور از حساس بودن به حروف این است که
می‌توانید از حروف بزرگ استفاده کنید و غیره.
اما بهترین شیوه این است که با یک حرف بزرگ شروع کنید، و بقیه حروف معمولاً
کوچک باشند.
driveCar مگر در مواردی مانند که در آن حرف C هم باید بزرگ نوشته شود.
در این صورت حرف C را هم به صورت بزرگ می‌نویسید.
سپس لیست پارامترها را دارید که داخل پرانتز قرار می‌گیرند.
پارامترها برای ارسال و دریافت داده از یک متد استفاده می‌شوند.
لیست پارامترها به نوع، ترتیب و تعداد پارامترهای یک متد اشاره دارد.
پارامترها اختیاری هستند.
یعنی ممکن است یک متد هیچ پارامتری نداشته باشد، که در این صورت ورودی به متد وجود ندارد و آن ورودی‌ها همان پارامترها هستند.
و شما می‌توانید چیزی به متد بدهید و چیزی دریافت کنید.
و آن همان نوع بازگشتی است.
که به‌زودی آن را خواهیم دید.
پس ما یک مثال خواهیم داشت که می‌توانید لیست پارامترها و نوع بازگشتی را ببینید.
و سپس بدنه متد.
این بخش شامل مجموعه‌ای از دستورالعمل‌هاست که برای انجام فعالیت مورد نیاز لازم هستند.
و در واقع دقیقاً همان چیزی است که متد باید اجرا کند.
پس یک متد باید مقداری کد را اجرا کند.
و هر زمان آن متد را فراخوانی کنید باید همیشه همان کد اجرا شود.
پس بیایید نگاهی به یک مثال داشته باشیم.
اینجا مثالی داریم که من یک متد ایجاد کرده‌ام با نام public int add.
public مشخص‌کننده دسترسی است که یعنی این متد می‌تواند از کلاس‌های دیگر هم استفاده شود.
فعلاً این موضوع برای ما تفاوتی ندارد چون هنوز چندین کلاس ایجاد نکرده‌ایم، اما بعداً این کار را خواهیم کرد.
سپس int را داریم که نوع بازگشتی است.
پس این متد یک عدد صحیح را بازمی‌گرداند.
سپس نام متد را داریم، که در این مثال add است.
این متد باید دو مقدار را با هم جمع بزند، و این دو مقدار همان پارامترها هستند.
یعنی int num1 و int num2.
و نکته مهم این است که نوع داده را مشخص کنید.
سپس نام پارامتر را وارد کنید.
آن‌ها را با ویرگول از هم جدا می‌کنید و ادامه می‌دهید.
پس می‌توانید چندین پارامتر مختلف داشته باشید.
لزومی ندارد فقط دو تا باشند.
می‌تواند یکی باشد، یا حتی پنجاه تا، هرچند.
اما معمولاً در عمل بیش از ۵ یا ۶ پارامتر استفاده نمی‌کنید.
ولی می‌تواند هر تعدادی که بخواهید باشد.
خیلی خب.
و سپس کاری که اینجا می‌کنید این است که دو عدد دارید و بعد پرانتز بسته می‌شود.
و سپس آکولاد باز می‌کنید.
و داخل آکولادها محتوای متد یا همان بدنه متد را دارید.
و در اینجا کد را اجرا می‌کنید.
پس هر زمان که یک نوع داده دارید، مثلاً integer، باید چیزی را برگردانید که از همان نوع داده باشد.
در مثال ما، مقدار بازگشتی result است و result یک عدد صحیح می‌باشد که برابر است با num1 به علاوه num2.
پس این متد یک مثال ساده از متدی است که دو مقدار را جمع می‌کند و نتیجه آن دو مقدار را برمی‌گرداند.
یعنی مجموع آن دو مقدار.
پس همانطور که می‌بینید این یک مثال ساده است.
و حتی می‌توانید کد را کمی خلاصه‌تر کنید.
می‌توانید آن مرحله اضافی را حذف کنید.
و به سادگی بنویسید return num1 + num2.
پس دیگر نیازی به آن مرحله اضافه نخواهد بود.
البته می‌توانید برای خوانایی بهتر آن مرحله را اضافه کنید.
اما در هر صورت، در ویدئوی بعدی به چندین مثال مختلف نگاه خواهیم کرد.
در ویدئوی بعدی قرار است یک مثال void بسازیم که چیزی برنگرداند.
و سپس نگاهی خواهیم داشت به متدهایی که مقداری را برمی‌گردانند و غیره.
خیلی خب.
پس این فقط بخش تئوری بود.
بیایید به سراغ دمو برویم و نگاهی داشته باشیم به اینکه با متدها چه کار می‌توانیم انجام دهیم و هدف آن‌ها چیست.