public void Visitor_Test() { var structure = new Structure(); var e1 = new Element01() { State = 0 }; var e2 = new Element02() { State = 1 }; var v1 = new VisitorA(); var v2 = new VisitorB(); structure.Elements.Add(e1); structure.Elements.Add(e2); structure.Accept(v1); Assert.IsTrue(e1.State == 2 && e2.State == 3); structure.Accept(v2); Assert.IsTrue(e1.State == 12 && e2.State == 13); }
static void Main(string[] args) { IBase obj = new BaseElement(); IElement obj1 = new Element01(); obj.method01(); //call base obj1.method01(); Console.ReadLine(); }