Главная страница » C# » 42. Методы с переменным количеством параметров
В C# можно передавать переменное количество параметров в метод с помощью ключевого слова params
. Это удобно, когда заранее неизвестно количество аргументов, которые нужно передать в метод.
Простой пример:
static void PrintNumbers(params int[] numbers)
{
foreach (int num in numbers)
Console.WriteLine(num);
}
PrintNumbers(1, 2, 3, 4, 5); // Выведет 1 2 3 4 5
static void MethodName(params <тип>[] <имя_массива>)
{
// Тело метода
}
params
:params int[]
, params string[]
и т. д.)params
-параметр должен быть последним в списке аргументовparams
-параметр в методеПример:
static void PrintMessages(string header, params string[] messages)
{
Console.WriteLine(header);
foreach (string message in messages)
Console.WriteLine($"- {message}");
}
Вызов:
PrintMessages("Список дел:", "Купить хлеб", "Позвонить другу", "Написать код");
Вывод:
Список дел:
- Купить хлеб
- Позвонить другу
- Написать код
int[]
static void PrintNames(params string[] names)
{
foreach (string name in names)
Console.WriteLine($"Привет, {name}!");
}
Вызов:
PrintNames("Алиса", "Боб", "Чарли");
Вывод:
Привет, Алиса!
Привет, Боб!
Привет, Чарли!
3.2. Передача объектов
static void PrintObjects(params object[] items)
{
foreach (var item in items)
Console.WriteLine(item);
}
Вызов:
PrintObjects(1, "Hello", 3.14, true);
Вывод:
1
Hello
3.14
True
params
Если у нас уже есть массив, можно передать его в метод с params
:
int[] numbers = { 10, 20, 30 };
PrintNumbers(numbers);
или передача отдельных значений:
PrintNumbers(10, 20, 30);
params
с обычными параметрами
static void ShowInfo(string title, params string[] items)
{
Console.WriteLine($"=== {title} ===");
foreach (string item in items)
Console.WriteLine(item);
}
Вызов:
ShowInfo("Список покупок", "Молоко", "Хлеб", "Яблоки");
Вывод:
=== Список покупок ===
Молоко
Хлеб
Яблоки
params
позволяет передавать переменное количество аргументов в метод.params
может принимать другие аргументы, но params
всегда должен быть последним.SumAll
, который принимает переменное количество чисел и возвращает их сумму.JoinStrings
, который объединяет переменное количество строк в одну строку через пробел.
using System;
class Program
{
static int SumAll(params int[] numbers)
{
int sum = 0;
foreach (int num in numbers)
sum += num;
return sum;
}
static string JoinStrings(params string[] words)
{
return string.Join(" ", words);
}
static void Main()
{
Console.WriteLine(SumAll(1, 2, 3, 4, 5)); // 15
Console.WriteLine(JoinStrings("Hello", "world", "!")); // "Hello world !"
}
}
Попробуйте написать и запустить этот код, чтобы убедиться в правильности выполнения операций и особенностях работы с числами с плавающей точкой.
Телефон: +375 33 910-08-92
Email: info@codefor.tech
Адрес: г. Барановичи, ул. Пирогова, д. 7
© 2024-2025 Все права защищены. CodeFor.