我刚看了一段视频,展示了C#7的新功能.其中,它引入了返回元组类型的可能性(例如:(int, int),我认为,这只是一个语法糖Tuple<int, int>).因此,如果我们有一个返回多个值的方法,C#中有3种可能的方法:
(int first, int second) ReturnTuple()
{
return (1, 2);
}
int ReturnOutParam(out int second)
{
second = 2;
return 1;
}
CustomObject ReturnObject()
{
return new CustomObject
{
First = 1,
Second = 2
};
}
Run Code Online (Sandbox Code Playgroud)
我相信,没有更多的方法可以做到 - 如果是的话,请纠正我.
这三种方法中的哪一种是正确的?在哪些情况下我们可以使用剩下的两个?对于每一个新的C#版本,我都觉得有一两种设计模式在.NET世界中已经过时了.一些功能非常有用(如泛型,部分,LINQ,lambdas,async/await或null传播器).其他人非常情绪化(动态,名称).然后有一些对我没有意义的(属性自动初始化器,元组返回值或本地函数).