2
我已經實現了一些元組類的版本,並且真的很想從中學到更多東西。元組實現
請你指點一下我在這裏與我的實現失蹤的點。
class My_tuple<T1, T2> : EqualityComparer<My_tuple<T1, T2>>
{
#region Virables
public T1 First { get; private set; }
public T2 Second { get; private set; }
#endregion
#region Constractors
public My_tuple(T1 first, T2 second)
{
First = first;
Second = second;
}
#endregion
#region Equals && GetHashCode
public override bool Equals(My_tuple<T1, T2> L, My_tuple<T1, T2> R)
{
return EqualityComparer<T1>.Default.Equals(L.First, R.First) && EqualityComparer<T2>.Default.Equals(L.Second , R.Second);
}
public override bool Equals(object obj)
{
return obj is My_tuple<T1, T2> && Equals(this, (My_tuple<T1, T2>)obj);
}
public override int GetHashCode(My_tuple<T1, T2> M)
{
return M.First.GetHashCode()^M.Second.GetHashCode();
}
#endregion
#region operators
public static bool operator ==(My_tuple<T1, T2> left, My_tuple<T1, T2> right)
{
return left.Equals(right);
}
public static bool operator !=(My_tuple<T1, T2> left, My_tuple<T1, T2> right)
{
return !(left == right);
}
public static My_tuple<T1, T2> Create<T1, T2>(T1 first, T2 second)
{
return new My_tuple<T1, T2>(first, second);
}
#endregion
}
謝謝。
[System.Tuple class](http://msdn.microsoft.com/en-us/library/system.tuple.aspx)。 – 2010-08-16 10:18:15
[構建System.Tuple類的設計決策文章](http://msdn.microsoft.com/en-us/magazine/dd942829.aspx)。 – 2010-08-16 10:19:56