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