+using System.Collections;
abstract class A {
- protected abstract int this [int a] { get; }
+ protected abstract int this [int a] { get; }
+
+ public int EmulateIndexer (int a)
+ {
+ return this [a];
+ }
}
class B : A {
static int Main ()
{
X x = new X ();
- int b;
x [0] = 1;
if (x.v1 != 1)
if (x [0] != 1)
return 2;
+ B bb = new B ();
+
+ if (bb.EmulateIndexer (10) != 10)
+ return 3;
+
+ //
+ // This tests that we properly set the return type for the setter
+ // use pattern in the following indexer (see bug 36156)
+ Hashtable a = new Hashtable ();
+ int b = (int) (a [0] = 1);
+ if (b != 1)
+ return 4;
return new B ().M ();
}
}