首页 .Net .NET Core(C#)方法返回多个的值方法及示例代码

.NET Core(C#)方法返回多个的值方法及示例代码

1、使用元组实现返回多个值(ValueTuple和Tuple)

1) 使用ValueTuple实现

ValueTuple命名为元组(在C#7.1中可用),优点是它最简洁,不可变且易于构造。

private (double first, double second) GetHeight()
{
   return (1,2);
}
var result = GetHeight();
Console.WriteLine($"{result.first}, {result.second}");
var (first, second) = GetHeight();
Console.WriteLine($"{first}, {second}");

2) 使用Tuple实现

.NET Framework已经具有通用的Tuple类。但是,这些类有两个主要限制。首先,Tuple类将其属性命名为Item1,Item2,依此类推。这些名称不包含语义信息。使用这些元组类型不能实现传达每个属性的含义。新的语言功能使您可以为元组中的元素声明和使用语义上有意义的名称。

public Tuple<int, int> ViaClassicTuple()
{
   return new Tuple<int, int>(1,2);
}
var tuple = ViaClassicTuple();
Console.WriteLine($"{tuple.Item1}, {tuple.Item2}");

2、使用列表(list<T>)或数组实现返回多个值

1) 使用List列表实现

private List<double> GetHeight()
{
return new List<double>(){1,2};
}
var result = GetHeight();
Console.WriteLine($"{result[0]}, {result[1]}");

2) 使用数组实现

private double[] GetHeight()
{
return new double[2]{ 1,2};
}
var result = GetHeight();
Console.WriteLine($"{result[0]}, {result[1]}");

3、使用类或结构体返回多个值

1) 使用类实现

public >SomeClass
{
public int First { get; set; }
public int Second { get; set; }
public SomeClass(int first, int second)
{
First = first;
Second = second;
}
}
public SomeClass ViaSomeClass()
{
return new SomeClass(1, 2);
}
var someClass = ViaSomeClass();
Console.WriteLine($"{someClass.First}, {someClass.Second}");

2) 使用结构体实现

public struct ClassicStruct
{
public int First { get; set; }
public int Second { get; set; }
public ClassicStruct(int first, int second)
{
First = first;
Second = second;
}
}
public ClassicStruct ViaClassicStruct()
{
return new ClassicStruct(1, 2);
}
var >Console.WriteLine($"{>{ data-title="在线运行" onclick="runCode(5)">

4、使用out参数实现

参数进行的任何操作都是在自变量上进行的。就像ref关键字一样,除了ref要求在传递变量之前先对其进行初始化。它也类似于in关键字,除了in不允许调用的方法修改参数值。要使用out参数,方法定义和调用方法都必须显式使用out关键字。

1) 多个out参数实现

public bool ViaOutParams(out int first, out int second)
{
first = 1;
second = 2;
return someCondition;
}
if(ViaOutParams(out var firstInt, out var secondInt))
Console.WriteLine($"{firstInt}, {secondInt}");

2) 使用out ValueTuple实现

public bool ViaOutTuple(out (int first,int second) output)
{
output = (1, 2);
return someCondition;
}
if (ViaOutTuple(out var output))
Console.WriteLine($"{output.first}, {output.second}");


特别声明:本站部分内容收集于互联网是出于更直观传递信息的目的。该内容版权归原作者所有,并不代表本站赞同其观点和对其真实性负责。如该内容涉及任何第三方合法权利,请及时与824310991@qq.com联系,我们会及时反馈并处理完毕。