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