Ответ 1
Да. Классическим примером будет params object[] args
:
//Allows to pass in any number and types of parameters
public static void Program(params object[] args)
Типичная usecase будет передавать параметры в среде командной строки в программу, где вы передаете их в виде строк. Затем программа должна правильно проверить и назначить их.
Ограничения:
- Допускается только одно ключевое слово
params
для каждого метода - Это должен быть последний параметр.
EDIT: После того, как я прочитал ваши изменения, я сделал свой. В приведенной ниже части также рассматриваются методы для получения переменного количества аргументов, но я думаю, что вы действительно искали способ params
.
Также один из наиболее классических, называется перегрузкой метода . Вы, вероятно, использовали их уже много:
//both methods have the same name and depending on wether you pass in a parameter
//or not, the first or the second is used.
public static void SayHello() {
Console.WriteLine("Hello");
}
public static void SayHello(string message) {
Console.WriteLine(message);
}
Последнее, но не менее важное: Необязательные аргументы
//this time we specify a default value for the parameter message
//you now can call both, the method with parameter and the method without.
public static void SayHello(string message = "Hello") {
Console.WriteLine(message);
}