C# 如何获得返回三元组并将其放入三个变量的方法的输出?

C# 如何获得返回三元组并将其放入三个变量的方法的输出?,c#,C#,我有这个函数调用: GetLabels(phraseSources[seq].Kanji.Trim(), phraseSources[seq].Kana.Trim()); 它返回(字符串,字符串,字符串) 我怎样才能将其转化为三个变量,例如a、b和c?有很多方法, 首先,你可以使用 用作 例如: public Tuple<int, int> GetMultipleValue() { return Tuple.Create(1,2); } 方法1(参照传递) 由于C#类

我有这个函数调用:

 GetLabels(phraseSources[seq].Kanji.Trim(), phraseSources[seq].Kana.Trim());
它返回(字符串,字符串,字符串)


我怎样才能将其转化为三个变量,例如a、b和c?

有很多方法, 首先,你可以使用

用作

例如:

public Tuple<int, int> GetMultipleValue()
{
     return Tuple.Create(1,2);
}
方法1(参照传递)

由于C#类似于C语言,因此它支持引用。您可以在main(或调用此函数的任何位置)中创建3个字符串,并传递它们的引用:

string a, b, c;
GetLabels(phraseSources[seq].Kanji.Trim(), phraseSources[seq].Kana.Trim(), ref a, ref, b, ref c);
您还必须更改函数,以便它接收这三个变量。然后分配这些引用所需的值,而不是
return

方法2(返回对象)

您还可以在函数中创建一个对象(例如:数组、元组等)并返回它。函数调用后,反汇编该对象并将所需的值存储在字符串中

我建议您使用第一种方法,因为它更节省内存(否则,您将创建新对象及其副本)

方法3(返回C#7中的多个对象)(由@phalanx解决)

我只是觉得把所有的解决方案结合在一起更好)var(a,b,c)=GetLabels(…)
string a, b, c;
GetLabels(phraseSources[seq].Kanji.Trim(), phraseSources[seq].Kana.Trim(), ref a, ref, b, ref c);
(string firstName, string lastName) GetName(string myParameter)
    {
        var firstName = myParameter;
        var lastName = myParameter + " something";
        return (firstName, lastName);
    }

void DoSomethingWithNames()
{
    var (firstName, lastName) = GetName("myname");
}