//
// Copyright (c) 2002
// Ronald Kevin Burton
//
// Z poniższym kodem nie jest związana żadna gwarancja poprawności działania.
// Program został dołączony do książki ".NET CLR. Księga eksperta" w celu
// ilustracji koncepcji i zasad przedstawionych w tej książce. Program może być 
// używany na własne ryzyko.
//
// Przyznaje się prawo do użycia lub kopiowania tego oprogramowania do dowolnego celu
// bez konieczności ponoszenia żadnych opłat pod warunkiem, że powyższe uwagi zostaną 
// zachowane we wszystkich kopiach. Przyznaje się także prawo do modyfikacji kodu
// i dystrybucji zmodyfikowanego kodu pod warunkiem zachowania powyższych uwag
// oraz dołączenia informacji mówiącej o modyfikacji kodu.
//
// 
using System;

namespace Testing
{
	/// <summary>
	/// Podsumowanie dla TestingMain.
	/// </summary>
	class Integer
	{
		private int i;
		public Integer(int i)
		{
			this.i = i;
		}
		public int Int
		{
			get
			{
				return i;
			}
			set
			{
				i = value;
			}
		}
	}


	class TestingMain
	{
		static void Main(string[] args)
		{
			int i = 1;
			int j = 1;
			string a = i.ToString();
			string b = j.ToString();
			Console.WriteLine("{0} {1}", 1.ToString(), 1.GetType());
			Console.WriteLine("{0} {1} {2} {3}", 1.23.ToString(), 1.23.GetType(), 1.23.GetType().BaseType, 1.23.GetType().BaseType.BaseType);
			Console.WriteLine("{0} {1} {2}", a.GetHashCode(), b.GetHashCode(), a.Equals(b));
			Integer c = new Integer(i);
			Integer d = new Integer(j);
			Console.WriteLine("{0} {1} {2}", c.GetHashCode(), d.GetHashCode(), c.Equals(d));
		}
	}
}
