Mega Code Archive

 
Categories / C# / Class Interface
 

Illustrates the use of an indexer 1

/* Mastering Visual C# .NET by Jason Price, Mike Gunderloy Publisher: Sybex; ISBN: 0782129110 */ /*   Example10_11.cs illustrates the use of an indexer */ using System; public class Example10_11a {   public static void Main()   {     // create a Car object     Car myCar = new Car("Toyota", "MR2");     // display myCar[0] and myCar[1]     Console.WriteLine("myCar[0] = " + myCar[0]);     Console.WriteLine("myCar[1] = " + myCar[1]);     // set myCar[0] to "Porsche" and myCar[1] to "Boxster"     Console.WriteLine("Setting myCar[0] to \"Porsche\" " +       "and myCar[1] to \"Boxster\"");     myCar[0] = "Porsche";     myCar[1] = "Boxster";     // myCar[2] = "Test";  // causes IndeXOutOfRangeException to be thrown     // display myCar[0] and myCar[1] again     Console.WriteLine("myCar[0] = " + myCar[0]);     Console.WriteLine("myCar[1] = " + myCar[1]);   } } // declare the Car class class Car {   // declare two fields   private string make;   private string model;   // define a constructor   public Car(string make, string model)   {     this.make = make;     this.model = model;   }   // define the indexer   public string this[int index]   {     get     {       switch (index)       {         case 0:           return make;         case 1:           return model;         default:           throw new IndexOutOfRangeException();       }     }     set     {       switch (index)       {         case 0:           this.make = value;           break;         case 1:           this.model = value;           break;         default:           throw new IndexOutOfRangeException();       }     }   } }