Параметр Tuple или out для нескольких возвращаемых значений? - PullRequest
6 голосов
/ 13 апреля 2011

Я хочу вернуть несколько параметров из метода в c #. Я просто хотел узнать, какой из них лучше или Tuple?

static void Split (string name, out string firstNames, out string lastName)
{
    int i = name.LastIndexOf (' ');
    firstNames = name.Substring (0, i);
    lastName   = name.Substring (i + 1);
}


static Tuple<string,string> Split (string name)
{
//TODO
}

1 Ответ

4 голосов
/ 13 апреля 2011

Обычно где-то скрывается класс (значение), если вам нужно вернуть более одного значения из метода. Как насчет класса значений с методом 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...