在编写程序时,通常希望将一组值缺乏逻辑通用性的逻辑分组在一起,以证明创建一个类是合理的。
许多编程语言允许您在逻辑上将一组其他不相关的值组合在一起,而无需仅通过一种方式创建类型:
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#未来版本中为元组添加更好的支持。如果有人对您希望看到的涉及元组的功能有什么想法,我很乐意将它们传递给设计团队。现实情况比理论上的想法更具说服力。