public int Difference(IImageIterator <T> obj) { if (obj is ImageColumnIterator <T> ) { ImageColumnIterator <T> rhs = (ImageColumnIterator <T>)obj; return(Difference(rhs)); } throw new ArgumentException(); }
static void Main(string[] args) { ImageAggregate aggregate = new ImageAggregate(); aggregate.Add(new ImageBase() { Name = "cam", Image = new Bitmap(Image.FromFile("../../cam.bmp")) }); aggregate.Add(new ImageBase() { Name = "Jet", Image = new Bitmap(Image.FromFile("../../Jet.jpg")) }); aggregate.Add(new ImageBase() { Name = "Jet2", Image = new Bitmap(Image.FromFile("../../Jet.jpg")) }); aggregate.Add(new ImageBase() { Name = "Jet3", Image = new Bitmap(Image.FromFile("../../Jet.jpg")) }); aggregate.Add(new ImageBase() { Name = "Jet4", Image = new Bitmap(Image.FromFile("../../Jet.jpg")) }); IImageIterator iterator = aggregate.GetIterator(); iterator.Reset(); while (iterator.MoveNext()) { Console.WriteLine(iterator.Current.Name); if (iterator.Current.StartTest()) { Console.WriteLine("OK"); } else { Console.WriteLine("NG"); } System.Threading.Thread.Sleep(1000); } Console.ReadKey(); }