Point : Logic Operator Overload : Operator Overload C# Examples


C# Examples » Operator Overload » Logic Operator Overload »

 

Point









    
using  System;
using  System.Collections.Generic;
using  System.Text;

public  struct  Point  :  IComparable  {
        private  int  x,  y;
        public  Point(int  xPos,  int  yPos)  {
                x  =  xPos;
                y  =  yPos;
        }
        public  static  Point  operator  +(Point  p1,  Point  p2)  {  return  new  Point(p1.x  +  p2.x,  p1.y  +  p2.y);  }
        public  static  Point  operator  -(Point  p1,  Point  p2)  {  return  new  Point(p1.x  -  p2.x,  p1.y  -  p2.y);  }
        public  static  bool  operator  ==(Point  p1,  Point  p2)  {  return  p1.Equals(p2);  }
        public  static  bool  operator  !=(Point  p1,  Point  p2)  {  return  !p1.Equals(p2);  }
        public  static  bool  operator  <(Point  p1,  Point  p2)  {  return  (p1.CompareTo(p2)  <  0);  }
        public  static  bool  operator  >(Point  p1,  Point  p2)  {  return  (p1.CompareTo(p2)  >  0);  }
        public  static  bool  operator  <=(Point  p1,  Point  p2)  {  return  (p1.CompareTo(p2)  <=  0);  }
        public  static  bool  operator  >=(Point  p1,  Point  p2)  {  return  (p1.CompareTo(p2)  >=  0);  }
        public  static  Point  operator  ++(Point  p1)  {  return  new  Point(p1.x  +  1,  p1.y  +  1);  }
        public  static  Point  operator  --(Point  p1)  {  return  new  Point(p1.x  -  1,  p1.y  -  1);  }
        public  override  bool  Equals(object  o)  {
                if  (o  is  Point)  {
                        if  (((Point)o).x  ==  this.x  &&
                                ((Point)o).y  ==  this.y)
                                return  true;
                }
                return  false;
        }

        public  override  int  GetHashCode()  {  return  this.ToString().GetHashCode();  }
        public  override  string  ToString()  {
                return  string.Format("[{0},  {1}]",  this.x,  this.y);
        }
        public  int  CompareTo(object  obj)  {
                if  (obj  is  Point)  {
                        Point  p  =  (Point)obj;
                        if  (this.x  >  p.x  &&  this.y  >  p.y)
                                return  1;
                        if  (this.x  <  p.x  &&  this.y  <  p.y)
                                return  -1;
                        else
                                return  0;
                }  else
                        throw  new  ArgumentException();
        }
        public  static  Point  Add(Point  p1,  Point  p2)  {  return  p1  +  p2;  }
        public  static  Point  Subtract(Point  p1,  Point  p2)  {  return  p1  -  p2;  }
}
class  Program  {
        static  void  Main(string[]  args)  {
                Point  ptOne  =  new  Point(100,  100);
                Point  ptTwo  =  new  Point(40,  40);
                Console.WriteLine("ptOne  =  {0}",  ptOne);
                Console.WriteLine("ptTwo  =  {0}",  ptTwo);
                Console.WriteLine("ptOne  +  ptTwo:  {0}  ",  ptOne  +  ptTwo);
                Console.WriteLine("Point.Add(ptOne,  ptTwo):  {0}  ",  Point.Add(ptOne,  ptTwo));

                Console.WriteLine("ptOne  -  ptTwo:  {0}  ",  ptOne  -  ptTwo);
                Console.WriteLine("Point.Subtract(ptOne,  ptTwo):  {0}  ",  Point.Subtract(ptOne,  ptTwo));

                Point  ptThree  =  new  Point(90,  5);
                Console.WriteLine("ptThree  =  {0}",  ptThree);
                Console.WriteLine("ptThree  +=  ptTwo:  {0}",  ptThree  +=  ptTwo);

                Point  ptFour  =  new  Point(0,  500);
                Console.WriteLine("ptFour  =  {0}",  ptFour);
                Console.WriteLine("ptFour  -=  ptThree:  {0}",  ptFour  -=  ptThree);

                Point  ptFive  =  new  Point(10,  10);
                Console.WriteLine("ptFive  =  {0}",  ptFive);
                Console.WriteLine("++ptFive  =  {0}",  ++ptFive);
                Console.WriteLine("--ptFive  =  {0}",  --ptFive);

                Console.WriteLine("ptOne  ==  ptTwo  :  {0}",  ptOne  ==  ptTwo);
                Console.WriteLine("ptOne  !=  ptTwo  :  {0}",  ptOne  !=  ptTwo);
                Console.WriteLine("ptOne  <  ptTwo  :  {0}",  ptOne  <  ptTwo);
                Console.WriteLine("ptOne  >  ptTwo  :  {0}",  ptOne  >  ptTwo);
        }
}
    
   
  
   




HTML code for linking to this page:

Follow Navioo On Twitter

C# Examples

 Navioo Operator Overload
» Logic Operator Overload