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

            // Работа с разнородным интерфейсом.
            elementB.OperationB();
        }
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 VisitElementB(ElementB el);
Exemplo n.º 4
0
 public override void VisitElementB(ElementB el)
 {
     Console.WriteLine("{0} visited by {1}", el.GetType().Name, this.GetType().Name);
 }
Exemplo n.º 5
0
 public abstract void VisitElementB(ElementB elementB);
Exemplo n.º 6
0
 public static void VisitConcreteElementB(this ElementB element)
 {
     element.OperationB();
 }
Exemplo n.º 7
0
 public override void VisitElementB(ElementB el)
 {
     Console.WriteLine("{0} visited by {1}", el.GetType().Name, this.GetType().Name);
 }