一个元组与一个类有什么不同?

时间:2014-12-18 23:03:53

标签: c# class tuples

一个元组与一个类有什么不同?而不是以下代码,我们可以创建一个包含3个字段的类,并从中创建对象。这个元组与那个有什么不同?它只是减少了我们编写的代码,或者它与速度有关,因为你不能改变元组中的项目。

Tuple<int, string, bool> tuple = new Tuple<int, string, bool>(1, "cat", true);

4 个答案:

答案 0 :(得分:13)

它使您不必定义具有自定义属性的新类。

通过三个项的值来定义相等性,这是没有自定义编码的简单类所不能做的事情。这加上它不可变的事实使它成为Dictionary中哈希键的合理候选者。

一个缺点是属性是vanilla Item1Item2等,因此它们不会为其中的值提供任何上下文,其中属性如ID,{ {1}},Name会。

答案 1 :(得分:10)

Tuple 一个类。保存您想要的任何数据的人(在Item1)等非常有名的属性中。

应该创建类,以便您的代码更具可读性/可维护性。它的主要功能是作为一个“快速修复”,当你想要关联数据而不需要一个类来保存它们。

答案 2 :(得分:4)

在我看来,元组是对不良数据建模的邀请。您可以获得一个可以容纳n个项属性的通用对象,而不是创建一个合适的模型。命名也非常通用.. Item1..ItemN

答案 3 :(得分:1)

您使用元组作为在方法调用之间传递数据的方法,而无需定义新类。通常用于从方法返回多个数据而不是使用&#34; out&#34;参数。

请记住,out参数不能与async / await方法一起使用,这就是Tuples派上用场的地方。

如果您编写可重用的类库,则可能需要为数据定义一个类。但是,元组在表示层很棒。