using System; using System.Collections; using System.Collections.Generic; namespace SharpCifs.Util.Sharpen { public interface ITerator { bool HasNext (); object Next (); void Remove (); } public abstract class Iterator : IEnumerator, ITerator { private T _lastValue; object ITerator.Next () { return Next (); } public abstract bool HasNext (); public abstract T Next (); public abstract void Remove (); bool IEnumerator.MoveNext () { if (HasNext ()) { _lastValue = Next (); return true; } return false; } void IEnumerator.Reset () { throw new NotImplementedException (); } void IDisposable.Dispose () { } T IEnumerator.Current { get { return _lastValue; } } object IEnumerator.Current { get { return _lastValue; } } } }