一个元组与一个类有什么不同?而不是以下代码,我们可以创建一个包含3个字段的类,并从中创建对象。这个元组与那个有什么不同?它只是减少了我们编写的代码,或者它与速度有关,因为你不能改变元组中的项目。
Tuple<int, string, bool> tuple = new Tuple<int, string, bool>(1, "cat", true);
答案 0 :(得分:13)
它使您不必定义具有自定义属性的新类。
它 通过三个项的值来定义相等性,这是没有自定义编码的简单类所不能做的事情。这加上它不可变的事实使它成为Dictionary
中哈希键的合理候选者。
一个缺点是属性是vanilla Item1
,Item2
等,因此它们不会为其中的值提供任何上下文,其中属性如ID
,{ {1}},Name
会。
答案 1 :(得分:10)
Tuple
是一个类。保存您想要的任何数据的人(在Item1
)等非常有名的属性中。
应该创建类,以便您的代码更具可读性/可维护性。它的主要功能是作为一个“快速修复”,当你想要关联数据而不需要一个类来保存它们。
答案 2 :(得分:4)
在我看来,元组是对不良数据建模的邀请。您可以获得一个可以容纳n个项属性的通用对象,而不是创建一个合适的模型。命名也非常通用.. Item1..ItemN
答案 3 :(得分:1)
您使用元组作为在方法调用之间传递数据的方法,而无需定义新类。通常用于从方法返回多个数据而不是使用&#34; out&#34;参数。
请记住,out参数不能与async / await方法一起使用,这就是Tuples派上用场的地方。
如果您编写可重用的类库,则可能需要为数据定义一个类。但是,元组在表示层很棒。