کلمه کلیدی params – انجمن DEV

params
کلمه کلیدی – قبلاً در نسخه 12 سی شارپ معرفی شده بود، زمانی که params
فقط آرایه ما می توانیم در برابر نوع و در نسخه 13 استفاده کنیم params
حرقندی مجموعه را می توان در رابطه با نوع استفاده کرد، یعنی هر چیزی IEnumerable
او می تواند آن را به ورثه خود واگذار کند.params
سوزی ناگهانی متغیر تعداد (هر مقدار)، به شما امکان می دهد آرگومان ها را به متد ارسال کنید. این بدان معنی است که شما می توانید یک تابع را با هر تعداد آرگومان از جمله صفر فراخوانی کنید. این کلمه کلیدی به کامپایلر میگوید که آرگومانهای ورودی را بهعنوان یک کل ببیند، نه بهعنوان اشیاء منفرد مجموعه به معنی در نظر گرفتن به عنوان
تا نسخه 11 سی شارپ، اگر بخواهیم یک آرایه (یا هر مجموعه ای) را به یک متد ارسال کنیم، فقط Print(nums);
یا Print(new int[] {1,2,3});
باید می نوشتیم، یعنی ابتدا مجموعه را مقداردهی اولیه می کردیم.
مثال:
var nums = new int[] { 1, 2, 3 }; <-- etibor qiling
Print(nums); <-- etibor qiling
void Print(int[] array)
{
foreach(var item in array)
Console.Write($"{item} ");
}
// output -> 1 2 3
params
و نیازی به این کار نیست
مثال:
Print(1, 2, 3); <-- etibor qiling
void Print(params int[] array)
{
foreach(var item in array)
Console.Write($"{item} ");
}
// output -> 1 2 3
و این کلمه کلیدی نه تنها با آرایه ها، بلکه با هر یک است IEnumerable
او می تواند آن را به ورثه خود واگذار کند.
مثال:
Print(1, 2, 3); <-- etibor qiling
void Print(params List list) <-- etibor qiling
{
foreach(var item in list)
Console.Write($"{item} ");
}
// output -> 1 2 3
Params
تنها با استفاده از، می توانید ترکیبات مختلفی با انواع دیگر بسازید params
باید آخرین آرگومان متد باشد.
مثال:
PrintMessageAndNumbers("uchta son yubordim: ", 1,2,3);
void PrintMessageAndNumbers(string message, params int[] numbers)
{
Console.WriteLine(message);
foreach (int number in numbers)
{
Console.Write($"{number} ");
}
}
// output -> uchta son yubordim: 1 2 3
این و بسیاری از ترکیبات مشابه امکان پذیر است.