در زبان برنامهنویسی سیشارپ، آرایهها یکی از انواع دادههای اصلی هستند که برای ذخیره مجموعهای از مقادیر مشابه استفاده میشوند. در مواقعی که تعداد عناصر آرایه در زمان کدنویسی مشخص نیست، نیاز به راهحلی دارید که بتوانید با تعداد متغیری از دادهها کار کنید. اینجاست که آرایههای با طول متغیر یا همان پارامترهای متغیر وارد عمل میشوند. در این مقاله به زبانی ساده و روان با این نوع آرایهها و نحوه استفاده از آنها در پروژههای مختلف آشنا میشوید.
آرایههای با طول متغیر چیست؟
آرایههای با طول متغیر به شما این امکان را میدهند که تعداد نامشخصی از دادهها را در زمان اجرا به یک متد پاس دهید. بهعبارتدیگر، میتوانید به جای مشخص کردن تعداد دقیق ورودیها در زمان کدنویسی، تعداد دادههای ورودی را در زمان اجرا تعیین کنید. این ویژگی به کمک کلمه کلیدی params در سیشارپ پیادهسازی میشود.
به عنوان مثال، فرض کنید شما نیاز دارید که تابعی بنویسید که تعداد متغیری از اعداد را بگیرد و میانگین آنها را محاسبه کند. برای این کار میتوانید از آرایههای با طول متغیر استفاده کنید.
استفاده از آرایههای با طول متغیر در سیشارپ
در سیشارپ، برای تعریف یک آرایه با طول متغیر در ورودیهای یک متد، از کلمه کلیدی params استفاده میکنیم. این کار به ما اجازه میدهد که هر تعداد آرگومان (پارامتر) که بخواهیم، به آن متد پاس دهیم.
محاسبه میانگین اعداد با آرایههای با طول متغیر
public static double Average(params double[] numbers)
{
double sum = 0;
foreach (var num in numbers)
{
sum += num;
}
return sum / numbers.Length;
}
در این مثال:
از کلمه کلیدی params برای تعریف یک آرایه با طول متغیر از نوع double استفاده شده است.
تابع Average میتواند هر تعداد عدد double را بهعنوان ورودی بپذیرد و میانگین آنها را محاسبه کند.
اجرای تابع:
double avg1 = Average(1.5, 2.5, 3.5); // میانگین: 2.5
double avg2 = Average(10, 20, 30, 40); // میانگین: 25
در اینجا تابع Average میتواند با هر تعداد عدد فراخوانی شود، بدون اینکه نیاز باشد تعداد دقیق ورودیها را در زمان تعریف تابع مشخص کنیم.
مثالهای کاربردی از آرایههای با طول متغیر در پروژههای واقعی
1. پیدا کردن بیشترین عدد
فرض کنید نیاز دارید تابعی بنویسید که تعدادی عدد صحیح را بگیرد و بیشترین آنها را برگرداند. میتوانید از params استفاده کنید تا تابع شما هر تعداد عدد صحیح را بپذیرد.
public static int Max(params int[] numbers)
{
return numbers.Max();
}
اجرای تابع:
int max = Max(10, 20, 5, 50, 30); // بیشترین عدد: 50
Console.WriteLine(max);
در اینجا تابع Max بهراحتی میتواند هر تعداد عدد صحیح را پردازش کرده و بزرگترین آنها را بازگرداند.
2. ترکیب چند رشته
در پروژههای مختلف ممکن است نیاز داشته باشید تا چند رشته را با هم ترکیب کنید و بهصورت یک جمله نمایش دهید. به کمک params، این کار به سادگی قابل انجام است.
public static string Combine(params string[] words)
{
return String.Join(" ", words);
}
اجرای تابع:
string sentence = Combine("Hello", "World", "from", "C#");
Console.WriteLine(sentence); // خروجی: Hello World from C#
در این مثال، تابع Combine هر تعداد رشته که به آن داده شود را با یک فاصله بین آنها ترکیب کرده و یک رشته واحد ایجاد میکند.
نکات مهم در مورد آرایههای با طول متغیر
- کلمه کلیدی params باید آخرین پارامتر متد باشد: وقتی که از params استفاده میکنید، این پارامتر باید در انتهای لیست پارامترهای متد قرار بگیرد. برای مثال:
public static void PrintNumbers(int multiplier, params int[] numbers) { ... }
در اینجا، پارامتر multiplier در ابتدا آمده و params بهعنوان آخرین پارامتر قرار گرفته است.
- محدودیتی در تعداد ورودیها وجود ندارد: شما میتوانید هر تعداد آرگومان که بخواهید به متدهایی که از params استفاده میکنند، پاس دهید.
- پشتیبانی از انواع دادهها: params برای هر نوع دادهای قابل استفاده است، اما باید نوع داده ورودیها مشخص باشد. مثلاً اگر از params int[] استفاده کنید، فقط میتوانید اعداد صحیح پاس دهید.
مثالهای بیشتر از استفاده params در سیشارپ
محاسبه مجموع اعداد
با استفاده از params میتوانید تابعی بنویسید که مجموع هر تعداد عدد را محاسبه کند:
public static int Sum(params int[] numbers)
{
int sum = 0;
foreach (int number in numbers)
{
sum += number;
}
return sum;
}
اجرای تابع:
int total = Sum(1, 2, 3, 4, 5); // مجموع: 15
Console.WriteLine(total);
تبدیل لیستی از دادهها به یک رشته با جداکننده
فرض کنید لیستی از دادهها دارید و میخواهید آنها را به یک رشته با یک جداکننده خاص (مثل ویرگول) تبدیل کنید:
public static string ConvertToString(params string[] items)
{
return string.Join(", ", items);
}
اجرای تابع:
string result = ConvertToString("Apple", "Banana", "Cherry");
Console.WriteLine(result); // خروجی: Apple, Banana, Cherry
جمعبندی
آرایههای با طول متغیر در سیشارپ یک ویژگی قدرتمند و مفید هستند که به شما اجازه میدهند تا تعداد نامشخصی از دادهها را به متدهای خود پاس دهید. با استفاده از کلمه کلیدی params، میتوانید متدهایی انعطافپذیرتر و کارآمدتر بنویسید که در پروژههای واقعی و پیچیده بسیار کاربردی هستند. این قابلیت به شما این امکان را میدهد که برنامههای خود را با تعداد مختلفی از آرگومانها تنظیم کنید، بدون اینکه نیاز باشد از قبل تعداد آنها را بدانید.
اگر علاقمند به یادگیری سی شارپ به صورت حرفهای هستید، برنامههای آموزشی باگتو یکی از بهترین راهها برای آموزش سی شارپ است. باگتو، با مجموعهای از دورههای آموزشی که توسط متخصصان حرفهای طراحی شده است، شما را در مسیر یادگیری سی شارپ همراهی میکند.
با مطالعه و تمرین بیشتر، شما میتوانید به یک برنامهنویس حرفهای سی شارپ تبدیل شوید. پس تلاش کنید، یاد بگیرید و برای رسیدن به اهدافتان پیش بروید!
اگر به یادگیری بیشتر در موضوع آرایههای با طول متغیر در سیشارپ علاقهمند هستید، توصیه میکنیم که به مقالات مرتبط دیگری نیز مراجعه کنید. مقاله Hashtable در سیشارپ به شما نحوه استفاده از آرایهها به عنوان مقدار در ساختارهای کلید-مقدار مانند Hashtable را آموزش میدهد. همچنین، مقاله دستور where در سیشارپ توضیحاتی در مورد استفاده از کلمه کلیدی where برای فیلتر کردن آرایهها و مجموعهها ارائه میدهد.
برای افزودن دیدگاه خود، نیاز است ابتدا وارد حساب کاربریتان شوید