//Operator overloading for ThreeD-int 
 public static ThreeD operator -(ThreeD ob1, int i)
 {
     ThreeD temp = new ThreeD();
     temp.x = ob1.x - i;
     temp.y = ob1.y - i;
     temp.z = ob1.z - i;
     return temp;
 }
 //Operator Overloading unary --
 public static ThreeD operator --(ThreeD ob1)
 {
     ThreeD temp = new ThreeD();
     temp.x = ob1.x - 1;
     temp.y = ob1.y - 1;
     temp.z = ob1.z - 1;
     return temp;
 }
 //Operator overloading for ThreeD+int 
 public static ThreeD operator +(ThreeD ob1,int i)
 {
     ThreeD temp = new ThreeD();
     temp.x = ob1.x + i;
     temp.y = ob1.y + i;
     temp.z = ob1.z + i;
     return temp;
 }
 //Operator overloading unary -
 public static ThreeD operator -(ThreeD ob1)
 {
     ThreeD temp = new ThreeD();
     temp.x = -ob1.x;
     temp.y = -ob1.y;
     temp.z = -ob1.z;
     return temp;
 }
 //Operator Overloading unary ++
 public static ThreeD operator ++(ThreeD ob1)
 {
     ThreeD temp = new ThreeD();
     temp.x = ob1.x+1;
     temp.y = ob1.y+1;
     temp.z = ob1.z+1;
     return temp;
 }
 //Operator overloading binary -
 public static ThreeD operator -(ThreeD ob1,ThreeD ob2)
 {
     ThreeD temp = new ThreeD();
     temp.x = ob1.x - ob2.x;
     temp.y = ob1.y - ob2.y;
     temp.z = ob1.z - ob2.z;
     return temp;
 }
        //Operator overloading for ThreeD+int
        public static ThreeD operator +(ThreeD ob1, int i)
        {
            ThreeD temp = new ThreeD();

            temp.x = ob1.x + i;
            temp.y = ob1.y + i;
            temp.z = ob1.z + i;
            return(temp);
        }
        //Operator overloading for ThreeD-int
        public static ThreeD operator -(ThreeD ob1, int i)
        {
            ThreeD temp = new ThreeD();

            temp.x = ob1.x - i;
            temp.y = ob1.y - i;
            temp.z = ob1.z - i;
            return(temp);
        }
        //Operator Overloading unary --
        public static ThreeD operator --(ThreeD ob1)
        {
            ThreeD temp = new ThreeD();

            temp.x = ob1.x - 1;
            temp.y = ob1.y - 1;
            temp.z = ob1.z - 1;
            return(temp);
        }
        //Operator Overloading unary ++
        public static ThreeD operator ++(ThreeD ob1)
        {
            ThreeD temp = new ThreeD();

            temp.x = ob1.x + 1;
            temp.y = ob1.y + 1;
            temp.z = ob1.z + 1;
            return(temp);
        }
        //Operator overloading unary -
        public static ThreeD operator -(ThreeD ob1)
        {
            ThreeD temp = new ThreeD();

            temp.x = -ob1.x;
            temp.y = -ob1.y;
            temp.z = -ob1.z;
            return(temp);
        }
        //Operator overloading binary -
        public static ThreeD operator -(ThreeD ob1, ThreeD ob2)
        {
            ThreeD temp = new ThreeD();

            temp.x = ob1.x - ob2.x;
            temp.y = ob1.y - ob2.y;
            temp.z = ob1.z - ob2.z;
            return(temp);
        }
        static void Main(string[] args)
        {
            ThreeD ob1 = new ThreeD(2, 4, 6);
            ThreeD ob2 = new ThreeD(10, 12, 14);
            ThreeD ob3 = new ThreeD();

            //Print the both objects data
            Console.WriteLine("Object 1 contains :");
            ob1.Show();

            Console.WriteLine("Object 2 contains :");
            ob2.Show();

            //Check the operator overloading +
            ob3 = ob1 + ob2;
            Console.WriteLine("Now object 3 contains :");
            ob3.Show();

            //Check for operator overloading -
            ob3 = ob2 - ob1;
            Console.WriteLine("Now object 3 contains :");
            ob3.Show();

            ob3 = ob1 + ob2 + ob3;
            Console.WriteLine("Now object 3 contains :");
            ob3.Show();

            //Check for unary operator overloading -
            ob3 = -ob1;
            Console.WriteLine("Now object 3 contains :");
            ob3.Show();

            //Check for unary operator ++
            ob3++;
            Console.WriteLine("Now object 3 contains :");
            ob3.Show();

            //Check for unary operator --
            ob3--;
            Console.WriteLine("Now object 3 contains :");
            ob3.Show();

            //Check for ThreeD + int
            ob3 = ob1 + 10;
            Console.WriteLine("Now object 3 contains :");
            ob3.Show();

            //Check for ThreeD - int
            ob3 = ob1 - 10;
            Console.WriteLine("Now object 3 contains :");
            ob3.Show();

            //Check for int+ThreeD
            ob3 = 10 + ob1;
            Console.WriteLine("Now object 3 contains :");
            ob3.Show();
        }
        static void Main(string[] args)
        {
            ThreeD ob1 = new ThreeD(2, 4, 6);
            ThreeD ob2 = new ThreeD(10, 12, 14);
            ThreeD ob3 = new ThreeD();
            //Print the both objects data
            Console.WriteLine("Object 1 contains :");
            ob1.Show();

            Console.WriteLine("Object 2 contains :");
            ob2.Show();

            //Check the operator overloading +
            ob3 = ob1 + ob2;
            Console.WriteLine("Now object 3 contains :");
            ob3.Show();

            //Check for operator overloading -
            ob3 = ob2 - ob1;
            Console.WriteLine("Now object 3 contains :");
            ob3.Show();

            ob3 = ob1 + ob2 + ob3;
            Console.WriteLine("Now object 3 contains :");
            ob3.Show();

            //Check for unary operator overloading -
            ob3 = -ob1;
            Console.WriteLine("Now object 3 contains :");
            ob3.Show();

            //Check for unary operator ++
            ob3++;
            Console.WriteLine("Now object 3 contains :");
            ob3.Show();

            //Check for unary operator --
            ob3--;
            Console.WriteLine("Now object 3 contains :");
            ob3.Show();

            //Check for ThreeD + int
            ob3 = ob1 + 10;
            Console.WriteLine("Now object 3 contains :");
            ob3.Show();

            //Check for ThreeD - int
            ob3 = ob1 - 10;
            Console.WriteLine("Now object 3 contains :");
            ob3.Show();

            //Check for int+ThreeD
            ob3 = 10 + ob1;
            Console.WriteLine("Now object 3 contains :");
            ob3.Show();
        }