请有人解释一下元组是什么,以及如何在真实世界场景中使用它。我想了解一下这样可以如何丰富我的编码经验?
这个 < strong > msdn article 解释它非常好的例子,“ 元组是具有特定数量和序列的元素的数据结构”。
元组通常有四种使用方式: 表示单个数据集。例如,元组可以 表示数据库记录,其组件可以表示 记录的各个字段 提供对数据集的容易访问和操作。 不使用 out 参数从方法返回多个值 (在 C # 中)或者 ByRef参数(在 VisualBasic 中)。 通过单个参数将多个值传递给方法 例如,Thread.Start(Object)方法只有一个参数 允许您向线程在其上执行的方法提供一个值 如果提供一个 Tuple<T1, T2, T3>对象作为方法 参数,则可以为线程的启动例程提供三个 资料项目
元组通常有四种使用方式:
表示单个数据集。例如,元组可以 表示数据库记录,其组件可以表示 记录的各个字段
提供对数据集的容易访问和操作。
不使用 out 参数从方法返回多个值 (在 C # 中)或者 ByRef参数(在 VisualBasic 中)。
ByRef
通过单个参数将多个值传递给方法 例如,Thread.Start(Object)方法只有一个参数 允许您向线程在其上执行的方法提供一个值 如果提供一个 Tuple<T1, T2, T3>对象作为方法 参数,则可以为线程的启动例程提供三个 资料项目
Thread.Start(Object)
Tuple<T1, T2, T3>
元组允许您将可能不同类型的多个值组合到一个对象中,而不必创建自定义类。如果您想编写一个方法,例如返回三个相关的值,但是不想创建一个新类,那么这个方法可能很有用。
通常,您应该创建一个类,因为这允许您为每个属性提供有用的名称。广泛使用元组的代码将很快变得不可读,因为这些属性被称为 Item1、 Item2、 Item3等等。.
Item1
Item2
Item3
元组类允许开发人员通过不为特定用途定义特定类来“快速和懒惰”。
属性名称是 Item1、 Item2、 Item3... ,在某些情况下或没有文档时,这些名称可能没有意义。
元组类具有强类型泛型参数。Tuple 类的仍然用户可以从泛型参数的类型推断出。
元组和类之间的区别在于元组没有属性名。这几乎从来都不是一件好事,而且我只会在参数相当没有意义的时候使用元组,就像在抽象数学公式中一样。5,6,7维的抽象微积分可能需要一个元组来表示坐标。
这是关于 Tuple 类型的最重要的信息。元组是一个类,而不是一个结构。因此,它将被分配到托管堆上。分配的每个类实例都增加了垃圾收集的负担。
注: 属性 Item1、 Item2以及更多属性没有 setter。你不能指派他们。元组一旦在内存中创建就是不可变的。