public abstract void VisitConcreteElementA(ConcreteElementA concreteElementA);
 public abstract void VisitConcreteElementA(ConcreteElementA concreteElementA);
 public override void VisitConcreteElementA(ConcreteElementA concreteElementA)
 {
     Console.WriteLine("{0} visited by {1}", concreteElementA.GetType().Name, this.GetType().Name);
 }
 public override void VisitConcreteElementA(ConcreteElementA concreteElementA)
 {
     Console.WriteLine("{0} visited by {1}", concreteElementA.GetType().Name, this.GetType().Name);
 }