class A { public static int Main () { if (new B () [4] != 2) return 1; return 0; } } public class B { public int this[T key] { get { return 1; } } public int this[object key] { get { return 2; } } }