public void TestHierachy1() { Hierachy1.VisitorImplementation visitor = new Hierachy1.VisitorImplementation(); Hierachy1.CollectionClass collection = new Hierachy1.CollectionClass(); collection.AddElement(new Hierachy1.SingleClass("value1")); collection.AddElement(new Hierachy1.SingleClass("value2")); collection.AddElement(new Hierachy1.SingleClass("value3")); collection.AddElement(new Hierachy1.SingleClass("value4")); collection.Accept(visitor); }
public void Process <type>(type parameter) where type : class { if (parameter is CollectionClass) { Console.WriteLine("CollectionClass"); CollectionClass cls = parameter as CollectionClass; foreach (SingleClass item in cls) { item.Accept(this); } } else if (parameter is SingleClass) { SingleClass cls = parameter as SingleClass; Console.WriteLine("SingleClass (" + cls.Buffer + ")"); } }