using System;

namespace ObjectExtensions
{
	class Program
	{
		static void Main(string[] args)
		{			
			Foo();
			GC.Collect();
			Console.ReadLine();			
		}

		static void Foo()
		{
			//создаем самый простой объект
			var obj = new object();

			//расширяем объект свойством haha типа String
			obj.Extension("haha", "хехе");

			//расширяем объект свойством Haha типа DateTime (имена регистрозависимы)
			obj.Extension("Haha", DateTime.Now);
		
			//теперь получаем наши значения из свойств расширений
			Console.WriteLine(obj.Extension("haha"));
			Console.WriteLine(obj.Extension<DateTime>("Haha").Year);

			//резултат:
			//хехе
			//2010
		}
	}
}
