Exemplo n.º 1
0
        public override void VisitElementA(ElementA elementA)
        {
            // Код который мог быть размещен в классе ElementA,
            // расширяет собой класс ElementA.
            elementA.SomeState = "State A";
            Console.WriteLine(elementA.SomeState);

            // Работа с разнородным интерфейсом.
            elementA.OperationA();
        }
Exemplo n.º 2
0
        static void Main()
        {
            ElementA elementA = new ElementA();
            ElementB elementB = new ElementB();

            elementA.VisitConcreteElementA();
            elementB.VisitConcreteElementB();

            // Задержка.
            Console.ReadKey();
        }
Exemplo n.º 3
0
 public abstract void VisitElementA(ElementA el);
Exemplo n.º 4
0
 public override void VisitElementA(ElementA el)
 {
     Console.WriteLine("{0} visited by {1}", el.GetType().Name, this.GetType().Name);
 }
Exemplo n.º 5
0
 public abstract void VisitElementA(ElementA elementA);
Exemplo n.º 6
0
 public static void VisitConcreteElementA(this ElementA element)
 {
     element.OperationA();
 }
Exemplo n.º 7
0
 public override void VisitElementA(ElementA el)
 {
     Console.WriteLine("{0} visited by {1}", el.GetType().Name, this.GetType().Name);
 }