Да. Классическим примером будет params object[] args
:
//Allows to pass in any number and types of parameters
public static void Program(params object[] args)
Типичный вариант использования - передача параметров в среде командной строки в программу, где вы передаете их как строки. Затем программа должна подтвердить и назначить их правильно.
Ограничения:
- Для одного метода допускается только одно
params
ключевое слово
- Это должен быть последний параметр.
РЕДАКТИРОВАТЬ: После того, как я прочитал ваши правки, я сделал свои. Часть ниже также охватывает методы для получения переменного числа аргументов, но я думаю, что вы действительно искали способ 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);
}
http://msdn.microsoft.com/en-us/library/dd264739.aspx