Mega Code Archive

 
Categories / C# / Development Class
 

Override Equals method

using System; class Point: Object {    protected int x, y;    public Point() {      this.x = 0;      this.y = 0;    }    public Point(int X, int Y) {       this.x = X;       this.y = Y;    }    public override bool Equals(Object obj) {       if (obj == null || GetType() != obj.GetType()) return false;       Point p = (Point)obj;       return (x == p.x) && (y == p.y);    }    public override int GetHashCode() {       return x ^ y;    } } class Point3D: Point {    int z;    public Point3D(int X, int Y, int Z) {       this.x = X;       this.y = Y;       this.z = Z;     }    public override bool Equals(Object obj) {       return base.Equals(obj) && z == ((Point3D)obj).z;    }    public override int GetHashCode() {       return base.GetHashCode() ^ z;    } } class MyClass {   public static void Main() {      Point point2D = new Point(5, 5);      Point3D point3Da = new Point3D(5, 5, 2);      Point3D point3Db = new Point3D(5, 5, 2);      if (!point2D.Equals(point3Da)) {         Console.WriteLine("point2D does not equal point3Da.");      }      if (!point3Db.Equals(point2D)) {         Console.WriteLine("Likewise, point3Db does not equal point2D.");      }      if (point3Da.Equals(point3Db)) {         Console.WriteLine("However, point3Da equals point3Db.");      }   }  }