using System; interface IFoo { T this [int index] { get; set; } } public class FooCollection : IFoo { T IFoo.this [int index] { get { return default(T); } set { } } } class X { public static void Main () { IFoo foo = new FooCollection (); int a = foo [3]; Console.WriteLine (a); } }