Overload shift operator
/* C#: The Complete Reference by Herbert Schildt Publisher: Osborne/McGraw-Hill (March 8, 2002) ISBN: 0072134852 */ // Overload < and >. 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 <. public static bool operator <(ThreeD op1, ThreeD op2) { if((op1.x < op2.x) && (op1.y < op2.y) && (op1.z < op2.z)) return true; else return false; } // Overload >. public static bool operator >(ThreeD op1, ThreeD op2) { if((op1.x > op2.x) && (op1.y > op2.y) && (op1.z > op2.z)) return true; else return false; } // Show X, Y, Z coordinates. public void show() { Console.WriteLine(x + ", " + y + ", " + z); } } public class ThreeDDemo4 { public static void Main() { ThreeD a = new ThreeD(5, 6, 7); ThreeD b = new ThreeD(10, 10, 10); ThreeD c = new ThreeD(1, 2, 3); 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 > c) Console.WriteLine("a > c is true"); if(a < c) Console.WriteLine("a < c is true"); if(a > b) Console.WriteLine("a > b is true"); if(a < b) Console.WriteLine("a < b is true"); } }