public void Test()
        {
            Element elementA = new ConcreteElementA();
            Element elementB = new ConcreteElementB();

            Visitor visitorA = new ConcreteVisitorA();
            Visitor visitorB = new ConcreteVisitorB();

            elementA.Accept(visitorA);
            elementA.Accept(visitorB);
            elementB.Accept(visitorB);
            elementB.Accept(visitorA);
        }
 public override void VisitConcreteElementA(ConcreteElementA concreteElementA)
 {
     concreteElementA.Operation();
 }
 public abstract void VisitConcreteElementA(ConcreteElementA concreteElementA);