All pastes #44374 Raw Edit

Martin

public text v1 · immutable
#44374 ·published 2006-03-03 21:10 UTC
rendered paste body
using System;
using System.Diagnostics;
using SCG = System.Collections.Generic;

public abstract class EnumerableBase<Q> : SCG.IEnumerable<Q>
{
	public abstract SCG.IEnumerator<Q> GetEnumerator ();

	System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator ()
	{
		return GetEnumerator ();
	}
}

public abstract class CollectionValueBase<R> : EnumerableBase<R>
{
	protected virtual void raiseItemsAdded (R item, int count)
	{ }

	protected class RaiseForRemoveAllHandler
	{
		CircularQueue<R> wasRemoved;
	}

	public override abstract SCG.IEnumerator<R> GetEnumerator();
}

public class CircularQueue<S> : EnumerableBase<S>
{
	public override SCG.IEnumerator<S> GetEnumerator()
	{
		return null;
	}

	public virtual void Enqueue (S item)
	{ }
}

public class HashSet<T> : CollectionValueBase<T>
{
	private bool searchoradd (ref T item, bool add, bool update, bool raise)
	{
		return true;
	}

	public virtual void RemoveAll<U>(SCG.IEnumerable<U> items) where U : T
	{
		RaiseForRemoveAllHandler raiseHandler = new RaiseForRemoveAllHandler ();
	}

	public virtual void AddAll<U> (SCG.IEnumerable<U> items)
		where U : T
	{
		CircularQueue<T> wasAdded = new CircularQueue<T> ();

		foreach (T item in wasAdded)
			raiseItemsAdded (item, 1);
	}

	public override SCG.IEnumerator<T> GetEnumerator()
	{
		yield break;
	}
}

class X
{
	static void Main ()
	{ }
}