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; } } } }