Business Logic Toolkit for .NET
www.bltoolkit.net
|  Home   |  Download   |  Documentation   |  Discussions   |  License   |

  Source.Common.Tuple.cs

 
using System;

namespace BLToolkit.Common
{
    [Obsolete("Use System.Tuple")]
    public struct Tuple<T1,T2>
    {
        public Tuple(T1 field1, T2 field2)
        {
            Field1 = field1;
            Field2 = field2;
        }

        public readonly T1 Field1;
        public readonly T2 Field2;

        public override int GetHashCode()
        {
            int hash1 = Field1 == null ? 0 : Field1.GetHashCode();
            int hash2 = Field2 == null ? 0 : Field2.GetHashCode();

            return ((hash1 << 5) + hash1) ^ hash2;
        }

        public override bool Equals(object obj)
        {
            if (obj is Tuple<T1,T2>)
            {
                Tuple<T1,T2> t = (Tuple<T1,T2>)obj;

                return
                    (Field1 == null ? t.Field1 == null : Field1.Equals(t.Field1)) &&
                    (Field2 == null ? t.Field2 == null : Field2.Equals(t.Field2));
            }

            return false;
        }
    }

    [Obsolete("Use System.Tuple")]
    public struct Tuple<T1,T2,T3>
    {
        public Tuple(T1 field1, T2 field2, T3 field3)
        {
            Field1 = field1;
            Field2 = field2;
            Field3 = field3;
        }

        public readonly T1 Field1;
        public readonly T2 Field2;
        public readonly T3 Field3;

        public override int GetHashCode()
        {
            int hash1 = Field1 == null ? 0 : Field1.GetHashCode();
            int hash2 = Field2 == null ? 0 : Field2.GetHashCode();

            hash1 = ((hash1 << 5) + hash1) ^ hash2;
            hash2 = Field3 == null ? 0 : Field3.GetHashCode();

            return ((hash1 << 5) + hash1) ^ hash2;
        }

        public override bool Equals(object obj)
        {
            if (obj is Tuple<T1,T2,T3>)
            {
                Tuple<T1,T2,T3> t = (Tuple<T1,T2,T3>)obj;

                return
                    (Field1 == null ? t.Field1 == null : Field1.Equals(t.Field1)) &&
                    (Field2 == null ? t.Field2 == null : Field2.Equals(t.Field2)) &&
                    (Field3 == null ? t.Field3 == null : Field3.Equals(t.Field3));
            }

            return false;
        }
    }

    [Obsolete("Use System.Tuple")]
    public struct Tuple<T1,T2,T3,T4>
    {
        public Tuple(T1 field1, T2 field2, T3 field3, T4 field4)
        {
            Field1 = field1;
            Field2 = field2;
            Field3 = field3;
            Field4 = field4;
        }

        public readonly T1 Field1;
        public readonly T2 Field2;
        public readonly T3 Field3;
        public readonly T4 Field4;

        public override int GetHashCode()
        {
            int hash1 = Field1 == null ? 0 : Field1.GetHashCode();
            int hash2 = Field2 == null ? 0 : Field2.GetHashCode();

            hash1 = ((hash1 << 5) + hash1) ^ hash2;
            hash2 = Field3 == null ? 0 : Field3.GetHashCode();

            hash1 = ((hash1 << 5) + hash1) ^ hash2;
            hash2 = Field4 == null ? 0 : Field4.GetHashCode();

            return ((hash1 << 5) + hash1) ^ hash2;
        }

        public override bool Equals(object obj)
        {
            if (obj is Tuple<T1,T2,T3,T4>)
            {
                Tuple<T1,T2,T3,T4> t = (Tuple<T1,T2,T3,T4>)obj;

                return
                    (Field1 == null ? t.Field1 == null : Field1.Equals(t.Field1)) &&
                    (Field2 == null ? t.Field2 == null : Field2.Equals(t.Field2)) &&
                    (Field3 == null ? t.Field3 == null : Field3.Equals(t.Field3)) &&
                    (Field4 == null ? t.Field4 == null : Field4.Equals(t.Field4));
            }

            return false;
        }
    }
}
 
© 2010 www.bltoolkit.net
support@bltoolkit.net