static void Main(string[] args)
            {
                // An array of creators
                Creator[] creators = new Creator[2];
                creators[0] = new ConcreteCreatorA();
                creators[1] = new ConcreteCreatorB();
                // Iterate over creators and create products
                foreach (Creator obj in creators)
                {
                    Product product = obj.FactoryMethod();
                    Console.WriteLine("Created {0}", product.GetType().Name);
                }
                ConcreteCreatorA cc1 = new ConcreteCreatorA();

                cc1.Method1();
                ConcreteCreatorB cc2 = new ConcreteCreatorB();

                cc2.Method2();
                Console.ReadKey();
            }
        /// <summary>

        /// Entry point into console application.

        /// </summary>

        static void Main()
        {
            // An array of creators

            Creator[] creators = new Creator[2];

            creators[0] = new ConcreteCreatorA();
            creators[1] = new ConcreteCreatorB();

            // Iterate over creators and create products

            foreach (Creator creator in creators)
            {
                Product product = creator.FactoryMethod();
                Console.WriteLine("Created {0}",
                                  product.GetType().Name);
            }

            // Wait for user

            Console.ReadKey();
        }