Tuple常常译为“组元”,在大部分支持Tuple的语言中,常常表示成员数目确定,每个成员类型也确定的结构。常常用于表示函数的多个返回值或者查询的结果等。Tuple应当是强类型的,即所有成员的类型在编译时确定。比如,假想语法下Dim t = New Tuple(Of String, Integer, Double)那么t将具有三个成员,该数目无法改变;同时三个成员的类型分别为String, Integer和Double,也无法改变。如你所见,Tuple可以看作不用事先声明的结构体,可以根据所使用的场合灵活地创建。
public class Tuple<T1, T2> : IStructuralEquatable, IStructuralComparable, IComparable, ITuple
{
// Fields
private T1 m_Item1;
private T2 m_Item2; // Methods
public Tuple(T1 item1, T2 item2)
{
this.m_Item1 = item1;
this.m_Item2 = item2;
}
string ITuple.ToString(StringBuilder sb)
{
sb.Append(this.m_Item1);
sb.Append(", ");
sb.Append(this.m_Item2);
sb.Append(")");
return sb.ToString();
} int ITuple.Size
{
get
{
return 2;
}
} // Properties
public T1 Item1
{
get
{
return this.m_Item1;
}
} public T2 Item2
{
get
{
return this.m_Item2;
}
} //More and more...
}