پارامتر(Parameters) ها و آرگومان (Arguments) ها
مثال زیر روشی دارد که رشته ای به نام fname را به عنوان پارامتر در نظر می گیرد. وقتی متد فراخوانی می شود ، از یک نام عبور می کنیم که برای چاپ نام کامل در داخل روش استفاده می شود:
static void MyMethod(string fname)
{
Console.WriteLine(fname + " Refsnes");
}
static void Main(string[] args)
{
MyMethod("Liam");
MyMethod("Jenny");
MyMethod("Anja");
}
وقتی پارامتری به متد منتقل می شود ، آن را آرگومان می نامند. بنابراین ، از مثال بالا: fname یک پارامتر است ، در حالی که لیام ، جنی و آنجا آرگومان هستند.
پارامتر های پیش فرض
با استفاده از علامت برابر می توانید از مقدار پارامتر پیش فرض نیز استفاده کنید. اگر متد را بدون آرگومان فراخوانی کنیم ، از مقدار پیش فرض استفاده می کند ("نروژ"):
static void MyMethod(string country = "Norway")
{
Console.WriteLine(country);
}
static void Main(string[] args)
{
MyMethod("Sweden");
MyMethod("India");
MyMethod();
MyMethod("USA");
}
یک پارامتر با مقدار پیش فرض ، اغلب به عنوان "پارامتر اختیاری" شناخته می شود. از مثال بالا ، کشور یک پارامتر اختیاری و "نروژ" مقدار پیش فرض آن است.
پارامترهای متعدد (Multiple Parameters)
می توانید پارامترهای دلخواه خود را داشته باشید:
static void MyMethod(string fname, int age)
{
Console.WriteLine(fname + " is " + age);
}
static void Main(string[] args)
{
MyMethod("Liam", 5);
MyMethod("Jenny", 8);
MyMethod("Anja", 31);
}
توجه داشته باشید که هنگامی که با چندین پارامتر کار می کنید ، فراخوانی متد باید همان تعداد پارامتر را داشته باشد و آرگومان ها باید به همان ترتیب منتقل شوند.
مقادیر برگشتی (Return Values)
کلمه کلیدی void که در مثال های بالا استفاده شده است، نشان می دهد که این متد نباید مقداری را برگرداند. اگر می خواهید متد مقداری را برگرداند ، می توانید از نوع داده اولیه (مانند int یا double) به جای void استفاده کنید و از کلمه کلیدی Return در داخل روش استفاده کنید:
static int MyMethod(int x)
{
return 5 + x;
}
static void Main(string[] args)
{
Console.WriteLine(MyMethod(3));
}
این مثال حاصل جمع دو پارامتر یک متد است:
static int MyMethod(int x, int y)
{
return x + y;
}
static void Main(string[] args)
{
Console.WriteLine(MyMethod(5, 3));
}
همچنین می توانید نتیجه را در یک متغیر ذخیره کنید (توصیه می شود ، زیرا خواندن و نگهداری آن آسان تر است):
static int MyMethod(int x, int y)
{
return x + y;
}
static void Main(string[] args)
{
int z = MyMethod(5, 3);
Console.WriteLine(z);
}
آرگومان ها نام گذاری شده
همچنین می توان آرگومان ها را با کلید: مقدار ارسال کرد.
در این روش ترتیب آرگومان ها مهم نیست:
static void MyMethod(string child1, string child2, string child3)
{
Console.WriteLine("The youngest child is: " + child3);
}
static void Main(string[] args)
{
MyMethod(child3: "John", child1: "Liam", child2: "Liam");
}
آرگومان های نامگذاری شده مخصوصاً زمانی مفید هستند که چندین پارامتر با مقادیر پیش فرض داشته باشید و فقط وقتی می خواهید یکی از آنها را مشخص کنید:
static void MyMethod(string child1 = "Liam", string child2 = "Jenny", string child3 = "John")
{
Console.WriteLine(child3);
}
static void Main(string[] args)
{
MyMethod("child3");
}