آموزش مقدماتی زبان سی شارپ – قسمت هشتم
توابع و متدها
متدها ساختارهایی هستند که باعث افزایش خوانایی برنامهنویسی میشوند و توسعه سیستمهای نرمافزاری را تسریع میبخشند. دستوراتی که برای یک هدف مشخص مورد استفاده قرار میگیرند میتوانند در یک متد سازماندهی شوند و از این طریق روند برنامهنویسی افزایش مییابد.
متد یا تابع چیست؟
متد یا تابع یک مجموعه از دستورات است که با فراخوانی اجرا میشوند (یعنی هر زمان اسم تابع را صدا زدیم، مجموعه دستوراتی که در تابع تعریف شدهاند اجرا میشوند).
ویژگیهای یک تابع
- میتواند صفر، یک یا چند ورودی داشته باشد.
- میتواند صفر، یک یا چند خروجی داشته باشد.
- به ورودیها آرگومان گفته میشود.
- به متغیرهایی که ورودیها را دریافت میکنند پارامتر گفته میشود.
کلمه کلیدی void
در صورتی که تابع خروجی نداشته باشد، کلمه void را پس از کلمه کلیدی static مینویسیم و در صورتی که خروجی داشته باشد، نوع خروجی بایستی نوشته شود.
تعریف یک تابع ساده
در زیر یک تابع بدون ورودی و بدون خروجی تعریف شده است و سپس در تابع main (تابع اصلی) سه بار فراخوانی شده است.
class Program
{
static void Main(string[] args)
{
MyMethod(); // فراخوانی تابع
MyMethod();
MyMethod();
}
static void MyMethod()
{
Console.WriteLine("Hello from MyMethod!");
}
}
Hello from MyMethod!
Hello from MyMethod!
تابع با پارامتر (ورودی)
{
Console.WriteLine("Hello " + name);
}
{
int result = a + b;
Console.WriteLine("Sum: " + result);
}
Add(10, 20);
Sum: 30
تابع با خروجی
{
return a + b;
}
{
return "Hello " + name;
}
Console.WriteLine(sum); // خروجی: 30
string message = GetGreeting("Sara");
Console.WriteLine(message); // خروجی: Hello Sara
Hello Sara
کلمه کلیدی return
از کلمه کلیدی return برای برگرداندن مقدار از تابع استفاده میشود. پس از اجرای return، اجرای تابع متوقف میشود و مقدار به محل فراخوانی بازگردانده میشود.
چندریختی (Overloading) در توابع
در سی شارپ میتوان چندین تابع با نام یکسان اما با پارامترهای متفاوت تعریف کرد. به این مفهوم Overloading گفته میشود.
static int Add(int a, int b)
{
return a + b;
}
// تابع با سه پارامتر int
static int Add(int a, int b, int c)
{
return a + b + c;
}
// تابع با دو پارامتر double
static double Add(double a, double b)
{
return a + b;
}
Console.WriteLine(Add(5, 10, 15)); // 30
Console.WriteLine(Add(5.5, 10.5)); // 16.0
30
16
خلاصه
- متد: مجموعهای از دستورات که با فراخوانی اجرا میشوند
- پارامتر: متغیرهایی که ورودی تابع را دریافت میکنند
- آرگومان: مقادیری که به تابع ارسال میشوند
- void: برای توابع بدون خروجی
- return: برای برگرداندن مقدار از تابع
- Overloading: چندین تابع با نام یکسان و پارامترهای متفاوت