You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
54 lines
825 B
54 lines
825 B
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<T> : IEnumerator<T>, 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<T>.Current {
|
|
get { return _lastValue; }
|
|
}
|
|
|
|
object IEnumerator.Current {
|
|
get { return _lastValue; }
|
|
}
|
|
}
|
|
}
|