public void Visit(DThing dThing)
 {
     Result = new DTransformedThing(dThing, Arg);
 }
 class DTransformedThing : ITransformedThing { public DTransformedThing(DThing dThing, int arg)
                                               {
                                               }