using System;

namespace IDisposableTest
{
	class MainClass
	{
		public static int Main ()
		{
			using (Foo f = new Foo ())
				;

			Console.WriteLine ("Between. Foo.TotalInstances = " + Foo.TotalInstances);

			using (IDisposable f = new Foo ())
				;

			Console.WriteLine ("After. Foo.TotalInstances = " + Foo.TotalInstances);

			if (Foo.TotalInstances != 2)
				return 1;

			return 0;
		}
	}


	class Foo : IDisposable
	{
		public static int TotalInstances = 0;

		private int my_a = 0;

		public Foo ()
		{
			my_a = TotalInstances++;
			Console.WriteLine ("Instance " + my_a + " ctor");
		}

		public void Dispose ()
		{
			Console.WriteLine ("Instance " + my_a + " Dispose()");
		}
	}

}