Обычно где-то скрывается класс (значение), если вам нужно вернуть более одного значения из метода. Как насчет класса значений с методом Split()
как ctor:
public class Name
{
public Name(string name)
{
int i = name.LastIndexOf (' ');
FirstNames = name.Substring (0, i);
LastName = name.Substring (i + 1);
}
public string FirstName {get; private set;}
public string LastName {get; private set;}
}
Вместо
Split(name, out string firstName, out string lastName);
просто сделай
Name n = new Name(name);
и доступ к имени и фамилии через n.FirstName
и n.LastName
.