using System; using SCG = System.Collections.Generic; public abstract class EnumerableBase : SCG.IEnumerable { public abstract SCG.IEnumerator GetEnumerator(); System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() { return GetEnumerator(); } } public abstract class ArrayBase : EnumerableBase { public override SCG.IEnumerator GetEnumerator() { yield break; } } public class HashedArrayList : ArrayBase { public override SCG.IEnumerator GetEnumerator() { return base.GetEnumerator(); } } class X { public static void Main () { } }