آشنایی با متد

برای نمایش در کنسول از قطعه کد  Console.WritleLine()استفاده می‌کنیم و یک متن یا عدد را درون پرانتز مربوط به آن می‌نویسیم. درواقع، ما در حال استفاده کردن از متد WriteLine() هستیم. هنگام برنامه‌نویسی موارد زیادی به وجود می‌آید که قطعه کدی داریم و می‌خواهیم از آن چندین‌بار استفاده کنیم. اگر بخواهیم هر زمان که نیاز به آن قطعه کد داریم آن را بنویسیم مشکلاتی به وجود می‌آید. ممکن است تعداد این کد‌ها زیاد باشد که تکرار کردن کاری زمانبر و سخت است. تکرار کردن این قطعه کد‌ها باعث طولانی شدن بی‏دلیل کد پروژه می‌شود. در صورتی ‌که در آینده بخواهیم بخشی از آن را تغییر دهیم، احتمال فراموش کردن این‌که در چه بخش‌هایی از کد از آن استفاده کردیم زیاد است و ممکن است فراموش کنیم آن را تغییر دهیم و موارد دیگری که همه به بی‏نظمی می‌انجامد و احتمال بروز خطا را بیشتر می‌کند. یکی از پرکاربردترین راه‌حل‌هایی که برای حل این مشکل به وجود آمده، مِتُد (Method) است.

متد چیست؟

متد را می‌توان نامی در نظر گرفت که ما به قطعه کد مشخصی می‌دهیم و به جای آن‌که آن قطعه کد را در بخش‌های مختلف پروژه تکرار کنیم، از این نام استفاده می‌کنیم. همان‌گونه که باید برای تعریف متغیر از یک نام قابل‌فهم و مرتبط با ماهیت متغیر استفاده کنیم، برای متد هم باید از یک نام قابل‌فهم و مرتبط با ماهیت متد استفاده کنیم.

پارامتر چیست؟

یک متد می‌تواند تعدادی ورودی بگیرد، محاسباتی انجام دهد، و می‌تواند خروجی داشته باشد یا نداشته باشد. ورودی متد/ پارامتر ورودی (Parameter)مقداری است که می‌تواند باعث رفتار انعطاف‌پذیر متد شود و اطلاعات بیشتری به کد‌های درون متد دهد تا به‌صورت پویا‌تری اجرا شوند. 

برای مثال، فرض کنید متدی داریم که دو عدد را با هم جمع می‌کند، پارامترهای متد همان دو عدد هستند که مثلاً در بخشی از کد نیاز داریم دو عدد 3 و 10 را با هم جمع کنیم و در بخشی دیگر دو عدد 20 و 5 را. پارامترها متفاوت هستند، ولی کاری که متد انجام می‌دهد، در هر دو حالت یکی است (یعنی جمع کردن دو عدد).

در این قسمت فقط به برخی نکات مربوط به استفاده از متدها می‌پردازیم. برای استفاده از متد حتماً باید یک پرانتز باز و بسته () در انتهای نام متد داشته باشیم. یک متد می‌تواند هیچ پارامتری نداشته باشد یا یک یا بیشتر پارامتر داشته باشد. این پارامترها در واقع همان متغیر‌هایی هستند که قبلاً با آن‌ها آشنا شدیم. مثلاً متد WriteLine() یک پارامتر دارد که می‌تواند از نوع string یا int یا double یا bool باشد. درنتیجه، می‌توانیم متغیر‌هایی از این نوع را به متد بدهیم. در صورتی ‌که یک متد بیشتر از یک پارامتر به‌عنوان ورودی داشته باشد، آن‌ها را با , از هم جدا می‌کنیم.

نحوه استفاده از متد

متد WriteLine هیچ مقداری را برنمی‌گرداند و فقط یک‌سری کار انجام می‌دهد که در این‌جا نمایش در کنسول است. خروجی متدی را که مقداری را برمی‌گرداند می‌توانیم به یک متغیر تخصیص دهیم. مثلاً نتیجۀ متدی که اعداد را با هم جمع می‌کند، به متغیر تخصیص دهیم مثل کد زیر:

int methodResult = sum(10, 5);

  1. فرض کنید متدی با نام GetFullName داریم که دو پارامتر از نوع string دارد. اولین پارامتر firstName است و دومین پارامتر lastName و نام کامل را به خروجی ارسال می‌کند. در صورتی‌ که بخواهیم نتیجۀ این متد را در یک متغیر ذخیره کنیم، در چه نوع داده‌ای باید ذخیره کنیم؟