33 lines
619 B
C#
33 lines
619 B
C#
|
// Compiler options: /t:library
|
||
|
using System;
|
||
|
using SCG = System.Collections.Generic;
|
||
|
|
||
|
namespace C5
|
||
|
{
|
||
|
public abstract class EnumerableBase<T> : SCG.IEnumerable<T>
|
||
|
{
|
||
|
public abstract SCG.IEnumerator<T> GetEnumerator ();
|
||
|
|
||
|
System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()
|
||
|
{
|
||
|
return GetEnumerator();
|
||
|
}
|
||
|
}
|
||
|
|
||
|
public class ArrayBase<T> : EnumerableBase<T>
|
||
|
{
|
||
|
public override SCG.IEnumerator<T> GetEnumerator ()
|
||
|
{
|
||
|
yield break;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
public class ArrayList<T> : ArrayBase<T>
|
||
|
{
|
||
|
public override SCG.IEnumerator<T> GetEnumerator ()
|
||
|
{
|
||
|
return base.GetEnumerator ();
|
||
|
}
|
||
|
}
|
||
|
}
|