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");
}