static void Main(string[] args) { Triangle t = new Triangle(); Console.WriteLine(t.GetNumberOfSides()); t.Print(); IDrawable id = (IDrawable)t; id.Draw(); IPrintable ip = (IPrintable)t; ip.Draw(); Console.ReadKey(); }
private static void ExploreMultipleInheritanceWithInterfaces() { Square s = new Square(); Console.WriteLine("Square has {0} sides.", s.GetNumberOfSides()); s.Draw(); Console.WriteLine(""); Triangle t = new Triangle(); Console.WriteLine("Triangle has {0} sides.", t.GetNumberOfSides()); IPrintable tp = (IPrintable)t; tp.Draw(); // Call the explicitly defined IPrintable.Draw() IDrawable td = (IDrawable)t; td.Draw(); // Call the explicitly defined IDrawable.Draw() }
static void Main(string[] args) { Console.WriteLine("***** MI Interface Hierarchy *****\n"); Square mySquare = new Square(); IPrintable t = (IPrintable)mySquare; t.Draw(); IDrawable p = (IDrawable)mySquare; p.Draw(); mySquare.Print(); Console.WriteLine(mySquare.GetNumberOfSides()); Console.WriteLine("\n"); Rectangle Rec = new Rectangle(); Rec.GetNumberOfSides(); Rec.Draw(); Rec.Print(); Console.WriteLine(Rec.GetNumberOfSides()); Console.ReadLine(); }
/// <summary> /// 打印各组件 /// </summary> /// <param name="g">打印GDI接口</param> private void PrintControls(Graphics g) { float topOffSet = 0; if (_pageFromHeight) { topOffSet = -_pageIndex * _pagePrintHeight; } float leftOffSet = 0; float topOffSet1 = 0; float top = 0; List <Control> controls = _baseDoc.ReportViewer.GetControls <Control>(); foreach (Control control in controls) { if (control is IPrintable) { PointF point = GetControlLocation(control); if (point.X != 1.2345f && point.Y != 1.2345f && (!_pageFromHeight || (point.Y > _pageIndex * _pagePrintHeight && point.Y < (_pageIndex + 1) * _pagePrintHeight))) { IPrintable printable = (IPrintable)control; if (!printable.NoPrint) { if (point.Y > top) { printable.Draw(g, leftOffSet + point.X, topOffSet + topOffSet1 + point.Y); } else { printable.Draw(g, leftOffSet + point.X, topOffSet + point.Y); } } } } else if (control is Panel && (control as Panel).BorderStyle == BorderStyle.FixedSingle) { PointF point = GetControlLocation(control); if (point.X != 1.2345f && point.Y != 1.2345f && (!_pageFromHeight || (point.Y > _pageIndex * _pagePrintHeight && point.Y < (_pageIndex + 1) * _pagePrintHeight))) //if (point.X != 1.2345f && point.Y != 1.2345f) { g.DrawRectangle(new Pen(control.ForeColor), new Rectangle((int)(leftOffSet + point.X), (int)(topOffSet + topOffSet1 + point.Y), control.Width - 1, control.Height)); } } } foreach (Control control in controls) { if (control is IPrintable && control.Parent.Name.ToLower() == "panelfuji") { PointF point = GetControlLocation(control); if (point.X != 1.2345f && point.Y != 1.2345f) { IPrintable printable = (IPrintable)control; if (!printable.NoPrint) { if (point.Y > top) { printable.Draw(g, leftOffSet + point.X, topOffSet + topOffSet1 + point.Y); } else { printable.Draw(g, leftOffSet + point.X, topOffSet + point.Y); } } } } } }