一尘不染

元组旨在解决什么要求?

c#

我正在查看元组的新C#功能。我很好奇,元组旨在解决什么问题?

您在应用程序中使用了元组什么?

更新资料

感谢您到目前为止的回答,让我看看我是否脑子里有很多东西。已经指出了元组的一个很好的例子作为坐标。这看起来正确吗?

var coords = Tuple.Create(geoLat,geoLong);

然后像这样使用元组:

var myLatlng = new google.maps.LatLng("+ coords.Item1 + ", "+ coords.Item2 + ");

那是对的吗?


阅读 269

收藏
2020-05-19

共1个答案

一尘不染

在编写程序时,通常希望将一组没有足够通用性的值逻辑地组合在一起,以证明创建一个类是合理的。

许多编程语言允许您在逻辑上将一组其他不相关的值组合在一起,而无需仅通过一种方式创建类型:

void M(int foo, string bar, double blah)

从逻辑上讲,这与方法M完全相同,该方法M接受一个参数,该参数是int,string,double的三元组。但我希望您实际上不会做:

class MArguments
{
   public int Foo { get; private set; } 
   ... etc

除非MArguments在业务逻辑中具有其他含义。

“在一些比类轻的结构中将一堆其他不相关的数据组合在一起”的概念在很多地方都很有用,不仅用于方法的正式参数列表。当方法要返回两件事时,或者您要从两个数据而不是一个数据中键入字典时,此方法很有用。

像F#这样的语言本身就支持元组类型,为用户提供了极大的灵活性。它们是一组非常有用的数据类型。BCL团队决定与F#团队合作,为框架定义一种元组类型,以便每种语言都可以从中受益。

然而,在这一点上没有任何 语言
在C#中的元组的支持。元组只是其他框架类中的另一种数据类型。他们没有什么特别的。我们正在考虑在假设的C#未来版本中为元组添加更好的支持。如果有人对您想要看到的涉及元组的功能有什么想法,我很乐意将它们传递给设计团队。现实情况比理论上的想法更具说服力。

2020-05-19