The idea popped in to my head, so I wrote it down.  I’m not sure what it’s good for, but here it is:

 

    class C

    {

        private C() { }

        public static class Factory

        {

            public static C New()

            {

                return new C();

            }

        }

    }

 

    class Program

    {

        static void Main(string[] args)

        {

            C c = C.Factory.New();

        }

    }