值類型和引用類型爲引用類型(類),如點3(例如),這是一種矯枉過正,缺乏:最完整的Equals實現分別爲
#region System.Object Members
public override bool Equals (object obj)
{
//return this == (Point3) obj;
if (obj == null)
{
return false;
}
if (this.GetType () != obj.GetType ())
{
return false;
}
return this.Equals ((Point3) obj);
}
public override int GetHashCode ()
{
return this.X.GetHashCode ()^this.Y.GetHashCode ()^this.Z.GetHashCode ();
}
public override string ToString ()
{
return String.Format ("[{0}, {1}, {2}]", this.X, this.Y, this.Z);
}
#endregion
#region IEquatable<Point3> Members
public bool Equals (Point3 other)
{
if (other == null)
{
return false;
}
if (ReferenceEquals (this, other))
{
return true;
}
if (this.GetHashCode () != other.GetHashCode ())
{
return false;
}
if (!base.Equals (other))
{
return false;
}
return this == other;
}
#endregion
public static bool operator == (Point3 v0, Point3 v1)
{
return (v0.X.IsEqual (v1.X)) && (v0.Y.IsEqual (v1.Y)) && (v0.Z.IsEqual (v1.Z));
}
public static bool operator != (Point3 v0, Point3 v1)
{
return !(v0 == v1);
}
請進行調整或張貼新的包括值和引用類型,我可以在我的基類型(值和引用)中使用,而不用每次重新實現時都考慮太多。
編輯:這是爲不可變的類型。
呃......這裏有什麼問題? – configurator 2009-05-30 20:23:53
你爲什麼要求別人爲你做你的工作?我可以理解徵求建議,但要求我們爲您解決問題是讓您的帖子關閉的好方法。 – jrista 2009-05-30 20:39:30
是的,我真的提到它是一個ref類型。 – 2009-05-30 20:39:48