Mega Code Archive

 
Categories / C# Tutorial / Class
 

Overload the MyArray indexer

using System;      class MyArray {      int[] a;          public int Length;      public bool errflag;        public MyArray(int size) {       a = new int[size];       Length = size;      }        // This is the int indexer for MyArray.     public int this[int index] {       get {         if(indexCheck(index)) {           errflag = false;           return a[index];         } else {           errflag = true;           return 0;         }       }          set {         if(indexCheck(index)) {           a[index] = value;           errflag = false;         }         else errflag = true;       }     }        public int this[double idx] {       get {         int index = (int) idx;          if(indexCheck(index)) {           errflag = false;           return a[index];         } else {           errflag = true;           return 0;         }       }          set {         int index = (int) idx;          if(indexCheck(index)) {           a[index] = value;           errflag = false;         }         else errflag = true;       }     }        private bool indexCheck(int index) {      if(index >= 0 & index < Length) return true;      return false;     }   }        class MainClass {      public static void Main() {        MyArray myArray = new MyArray(5);          for(int i=0; i < myArray.Length; i++)        myArray[i] = i;         // now index with ints and doubles      Console.WriteLine("myArray[1]: " + myArray[1]);      Console.WriteLine("myArray[2]: " + myArray[2]);        Console.WriteLine("myArray[1.1]: " + myArray[1.1]);      Console.WriteLine("myArray[1.6]: " + myArray[1.6]);      }   } myArray[1]: 1 myArray[2]: 2 myArray[1.1]: 1 myArray[1.6]: 1