这样避免了很多小结构的定义,在多组件交互时,我们再也不必为了共用对象发愁了,期待以后Tuple思想更上一层楼这里有没有那位达人清楚,Tuple的内在实现的,给详细讲讲。

解决方案 »

  1.   

    [Serializable]
    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...
    }
      

  2.   

    ITuple在那个名称空间里这样有的结构好象C#2.0就可以实现了吧,为什么我当时没想到自己实现一个呢?网上说这个东西和函数式编程设计思想有关,有了这样的东西,真的觉得很多类结构似乎没很必要存在了一样。网上说Tuple等于是一种固定成员的泛型集合,这样来看话,应该很平常。只是原来 没提出来,没想到而已
      

  3.   

    Tuple常常译为“组元”,在大部分支持Tuple的语言中,常常表示成员数目确定,每个成员类型也确定的结构。常常用于表示函数的多个返回值或者查询的结果等。Tuple应当是强类型的,即所有成员的类型在编译时确定。比如,假想语法下Dim t = New Tuple(Of String, Integer, Double)那么t将具有三个成员,该数目无法改变;同时三个成员的类型分别为String, Integer和Double,也无法改变。如你所见,Tuple可以看作不用事先声明的结构体,可以根据所使用的场合灵活地创建。