这个问题已经在这里有一个答案:
- 实际的例子,其中元组可以在.NET 4.0中使用吗? 19个回答
可能有人请解释什么是元组,以及如何使用它在真实的场景。 我想找出如何能丰富我的编码经验?
这个问题已经在这里有一个答案:
可能有人请解释什么是元组,以及如何使用它在真实的场景。 我想找出如何能丰富我的编码经验?
此MSDN文章与实施例解释了它非常好,“ 元组是一个数据结构,它具有的元件的具体数目和序列 ”。
元组的四种方式常用的有:
来表示单个的数据集。 例如,元组可以表示数据库记录,和它的组件可以代表记录的各个字段。
为了提供方便的,和操纵,数据集。
为了从方法返回多个值,而无需使用了参数(在C#)或
ByRef
参数(在Visual Basic)。通过一个单一的参数传递多个值的方法。 例如,
Thread.Start(Object)
方法有一个单一的参数,可用于提供一个值来使线程执行在启动时间的方法。 如果提供了Tuple<T1, T2, T3>
对象作为方法参数,可以用三个项目数据的供应线启动例行程序。
元组可以让你无需创建一个自定义的类可能是不同的类型为单一对象的多值组合。 如果你想写例如返回三个相关值的方法,这可能是有用的,但你不希望创建一个新的类。
通常,虽然你应该创建一个类,因为这可以让你给有用的名称,以每个属性。 因为属性被称为是广泛使用的元组代码将很快成为不可读Item1
, Item2
, Item3
等。
一个元组和类之间的区别是,一个元组没有属性名。 这是几乎从来没有一个好东西,我只会用一个元组时,参数是没有意义的像一个抽象的数学公式如英寸 在5,6,7尺寸抽象演算可能需要为坐标的元组。
这是了解的元组类型中最重要的事情。 元组是一类,而不是一个结构。 因此,它将在托管堆中分配。 被分配每个类的实例添加到垃圾回收的负担。
注:性能项目1,项目2,进一步没有setter方法。 你不能为它们分配。 一旦在内存中创建元组是不可改变的。
元组类允许开发人员通过不定义为特定的使用特定类是“快速和懒惰”。
属性名称是项目1,项目2,项目3 ......,这可能不是在某些情况下,或没有证件有意义。
元组类有强类型泛型参数。 尽管如此元组类的用户可以从泛型参数的类型推断。