Mega Code Archive

 
Categories / C# / Class Interface
 

Overload true and fase for ThreeD

/* C#: The Complete Reference  by Herbert Schildt  Publisher: Osborne/McGraw-Hill (March 8, 2002) ISBN: 0072134852 */ // Overload true and fase for ThreeD.    using System;        // A three-dimensional coordinate class.    class ThreeD {      int x, y, z; // 3-D coordinates            public ThreeD() { x = y = z = 0; }      public ThreeD(int i, int j, int k) { x = i; y = j; z = k; }        // Overload true.      public static bool operator true(ThreeD op) {      if((op.x != 0) || (op.y != 0) || (op.z != 0))        return true; // at least one coordinate is non-zero      else        return false;    }        // Overload false.    public static bool operator false(ThreeD op) {      if((op.x == 0) && (op.y == 0) && (op.z == 0))        return true; // all coordinates are zero      else        return false;    }        // Overload unary --.     public static ThreeD operator --(ThreeD op)     {       // for ++, modify argument       op.x--;       op.y--;        op.z--;           return op;     }       // Show X, Y, Z coordinates.      public void show()      {        Console.WriteLine(x + ", " + y + ", " + z);      }    }        public class TrueFalseDemo {      public static void Main() {        ThreeD a = new ThreeD(5, 6, 7);        ThreeD b = new ThreeD(10, 10, 10);        ThreeD c = new ThreeD(0, 0, 0);            Console.Write("Here is a: ");        a.show();        Console.Write("Here is b: ");        b.show();        Console.Write("Here is c: ");        c.show();        Console.WriteLine();            if(a) Console.WriteLine("a is true.");      else Console.WriteLine("a is false.");        if(b) Console.WriteLine("b is true.");      else Console.WriteLine("b is false.");        if(c) Console.WriteLine("c is true.");      else Console.WriteLine("c is false.");        Console.WriteLine();        Console.WriteLine("Control a loop using a ThreeD object.");      do {        b.show();        b--;      } while(b);      }    }