如何在 C# 7 中 return 多个值?
How to return multiple values in C# 7?
是否可以 return 从一个方法中本地获取多个值?
本地是什么意思?
C# 7 有一项新功能,由于 元组类型 和 元组文字 .
以下面的函数为例:
(string, string, string) MyCoolFunction() // tuple return type
{
//...
return (firstValue, secondValue, thirdValue);
}
可以这样使用:
var values = MyCoolFunction();
var firstValue = values.Item1;
var secondValue = values.Item2;
var thirdValue = values.Item3;
或者使用解构语法
(string first, string second, string third) = MyCoolFunction();
//...
var (first, second, third) = MyCoolFunction(); //Implicitly Typed Variables
花点时间看看 Documentation,他们有一些很好的例子(这个答案是基于他们的!)。
您正在寻找元组。这是一个例子:
static (int count, double sum) Tally(IEnumerable<double> values)
{
int count = 0;
double sum = 0.0;
foreach (var value in values)
{
count++;
sum += value;
}
return (count, sum);
}
...
var values = ...
var t = Tally(values);
Console.WriteLine($"There are {t.count} values and their sum is {t.sum}");
示例来自 http://www.thomaslevesque.com/2016/07/25/tuples-in-c-7/
你也可以这样实现:
public class Program
{
public static void Main(string[] args)
{
var values=GetNumbers(6,2);
Console.Write(values);
}
static KeyValuePair<int,int> GetNumbers(int x,int y)
{
return new KeyValuePair<int,int>(x,y);
}
}
是否可以 return 从一个方法中本地获取多个值?
本地是什么意思?
C# 7 有一项新功能,由于 元组类型 和 元组文字 .
以下面的函数为例:
(string, string, string) MyCoolFunction() // tuple return type
{
//...
return (firstValue, secondValue, thirdValue);
}
可以这样使用:
var values = MyCoolFunction();
var firstValue = values.Item1;
var secondValue = values.Item2;
var thirdValue = values.Item3;
或者使用解构语法
(string first, string second, string third) = MyCoolFunction();
//...
var (first, second, third) = MyCoolFunction(); //Implicitly Typed Variables
花点时间看看 Documentation,他们有一些很好的例子(这个答案是基于他们的!)。
您正在寻找元组。这是一个例子:
static (int count, double sum) Tally(IEnumerable<double> values)
{
int count = 0;
double sum = 0.0;
foreach (var value in values)
{
count++;
sum += value;
}
return (count, sum);
}
...
var values = ...
var t = Tally(values);
Console.WriteLine($"There are {t.count} values and their sum is {t.sum}");
示例来自 http://www.thomaslevesque.com/2016/07/25/tuples-in-c-7/
你也可以这样实现:
public class Program
{
public static void Main(string[] args)
{
var values=GetNumbers(6,2);
Console.Write(values);
}
static KeyValuePair<int,int> GetNumbers(int x,int y)
{
return new KeyValuePair<int,int>(x,y);
}
}