多个返回值的元组或输出参数?

san*_*ngh 6 c#-4.0

我想从c#中的方法返回多个参数.我只是想知道哪个更好或者是元组?

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
}
Run Code Online (Sandbox Code Playgroud)

Eri*_*fer 4

如果您需要从方法返回多个值,通常会在某处隐藏一个(值)类。将方法作为构造函数的值类怎么样Split()

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;}
}
Run Code Online (Sandbox Code Playgroud)

代替

Split(name, out string firstName, out string lastName);
Run Code Online (Sandbox Code Playgroud)

做就是了

Name n = new Name(name);
Run Code Online (Sandbox Code Playgroud)

n.FirstName并通过和访问名字和姓氏n.LastName