Если вы не знаете, сколько элементов массива содержится в массиве аргументов, попробуйте использовать string.Join ().
string.Format("Arguments passed in to the program are: {0}", string.Join(" ", args));
Конкретно в вашем примере:
string.Format("Her name is {0} years old", string.Join(" and she's ", args));
Лично мне не нравятся жестко запрограммированные структуры объекта массива. Это слишком много, чтобы помнить всюду по приложению и мешает поддерживать. Я бы предпочел превратить аргументы в объект Person с помощью конструктора, который принимает массив, и перегрузить ToString () для отображения конкретной информации о членах объекта.
class Person
{
private string m_sName;
private string m_sAge;
public Person(string[] args)
{
m_sName = args[0];
m_sAge = args[1];
}
public override string ToString()
{
return string.Format("Her name is {0} and she's {1} years old.", m_sName, m_sAge);
}
}
Таким образом, вы можете создать объект «Персона» и отобразить сообщение при вызове.
var oNewPerson = new Person(args);
console.WriteLine(oNewPerson.ToString());
Это очень похоже на пример Microsoft:
http://msdn.microsoft.com/en-us/library/ms173154(v=vs.80).aspx