Boilerplate Code

  • C#
  • .NET (FX) 4.5–4.8

Es gibt 1 Antwort in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    Boilerplate Code

    Hallo.

    Hat jemand eine Idee, wie man diesen Boilerplate Code optimal schreiben kann?

    C#-Quellcode

    1. protected override void OnPaint(System.Windows.Forms.PaintEventArgs e)
    2. {
    3. base.OnPaint(e);
    4. Graphics G = e.Graphics;
    5. G.SmoothingMode = SmoothingMode.HighQuality;
    6. G.TextRenderingHint = System.Drawing.Text.TextRenderingHint.ClearTypeGridFit;
    7. Func<int, int, int, Color> ARGBC = (int dd, int ee, int ff) => { return Color.FromArgb(dd, ee, ff); };
    8. Action<String, Color,Rectangle> DStr = (String x, Color Col, Rectangle Re) =>
    9. {
    10. using(SolidBrush sb = new SolidBrush(Col)){G.DrawString(x, Font, sb, Re);}
    11. };
    12. Action<String, Color,RectangleF> DStrF = (String x, Color Col, RectangleF Re) =>
    13. {
    14. using(SolidBrush sb = new SolidBrush(Col)){G.DrawString(x, Font, sb, Re);}
    15. };
    16. using (GraphicsPath gp = Draw.RoundRectF(bgr, 10))
    17. {
    18. using (LinearGradientBrush bg0 = new LinearGradientBrush(bgr, ARGBC(60, 59, 55), ARGBC(60, 59, 55), 90)) { G.FillPath(bg0, gp); }
    19. }
    20. using(LinearGradientBrush lgb10 = new LinearGradientBrush(MinBtn, ARGBC(152, 151, 146), ARGBC(56, 55, 51), 90))
    21. {
    22. G.FillEllipse(lgb10, MinBtn);
    23. G.DrawEllipse(Pens.DimGray, MinBtn);
    24. }
    25. DStrF("0", ARGBC(58, 57, 53), new RectangleF((float)5.5, (float)6, (float)0, (float)0));
    26. using(LinearGradientBrush lgb20 = new LinearGradientBrush(MaxBtn, ARGBC(152, 151, 146), ARGBC(56, 55, 51), 90)) {G.FillEllipse(lgb20, MaxBtn);}
    27. G.DrawEllipse(Pens.DimGray, MaxBtn);
    28. DStr("1", ARGBC(58, 57, 53), new Rectangle(26, 7, 0, 0));
    29. using(LinearGradientBrush lgb30 = new LinearGradientBrush(CloseBtn, ARGBC(247, 150, 116), ARGBC(223, 81, 6), 90)){G.FillEllipse(lgb30, CloseBtn);}
    30. G.DrawEllipse(Pens.DimGray, CloseBtn);
    31. DStr("r", ARGBC(58, 57, 53), new Rectangle(46, 7, 0, 0));
    32. switch (State)
    33. {
    34. case MouseState.None:
    35. using (LinearGradientBrush bg = new LinearGradientBrush(bgr, ARGBC(60, 59, 55), ARGBC(60, 59, 55), 90)) { G.FillPath(bg, Draw.RoundRectF(bgr, 10)); }
    36. using (LinearGradientBrush lgb1 = new LinearGradientBrush(MinBtn, ARGBC(152, 151, 146), ARGBC(56, 55, 51), 90)) {G.FillEllipse(lgb1, MinBtn); }
    37. G.DrawEllipse(Pens.DimGray, MinBtn);
    38. DStrF("0", ARGBC(58, 57, 53), new RectangleF((float)5.5, (float)6, (float)0, (float)0));
    39. using (LinearGradientBrush lgb2 = new LinearGradientBrush(MaxBtn, ARGBC(152, 151, 146), ARGBC(56, 55, 51), 90)) { G.FillEllipse(lgb2, MaxBtn); }
    40. G.DrawEllipse(Pens.DimGray, MaxBtn);
    41. DStr("1", ARGBC(58, 57, 53), new Rectangle(26, 7, 0, 0));
    42. using (LinearGradientBrush lgb3 = new LinearGradientBrush(CloseBtn, ARGBC(247, 150, 116), ARGBC(223, 81, 6), 90)) { G.FillEllipse(lgb3, CloseBtn); }
    43. G.DrawEllipse(Pens.DimGray, CloseBtn);
    44. DStr("r", ARGBC(58, 57, 53), new Rectangle(46, 7, 0, 0));
    45. break;
    46. case MouseState.Over:
    47. if (X > 3 && X < 20)
    48. {
    49. using (LinearGradientBrush bgx = new LinearGradientBrush(bgr, ARGBC(60, 59, 55), ARGBC(60, 59, 55), 90)) { G.FillPath(bgx, Draw.RoundRectF(bgr, 10)); }
    50. using (LinearGradientBrush lgby = new LinearGradientBrush(MinBtn, ARGBC(172, 171, 166), ARGBC(76, 75, 71), 90)) { G.FillEllipse(lgby, MinBtn); }
    51. G.DrawEllipse(Pens.DimGray, MinBtn);
    52. DStrF("0", ARGBC(58, 57, 53), new RectangleF((float)5.5, (float)6, (float)0, (float)0));
    53. using (LinearGradientBrush lgbz = new LinearGradientBrush(MaxBtn, ARGBC(152, 151, 146), ARGBC(56, 55, 51), 90)) { G.FillEllipse(lgbz, MaxBtn); }
    54. G.DrawEllipse(Pens.DimGray, MaxBtn);
    55. DStr("1", ARGBC(58, 57, 53), new Rectangle(26, 7, 0, 0));
    56. using (LinearGradientBrush lgbAA = new LinearGradientBrush(CloseBtn, ARGBC(247, 150, 116), ARGBC(223, 81, 6), 90)) { G.FillEllipse(lgbAA, CloseBtn); }
    57. G.DrawEllipse(Pens.DimGray, CloseBtn);
    58. DStr("r", ARGBC(58, 57, 53), new Rectangle(46, 7, 0, 0));
    59. break;
    60. }
    61. else if (X > 23 && X < 40)
    62. {
    63. using (LinearGradientBrush bgWW = new LinearGradientBrush(bgr, ARGBC(60, 59, 55), ARGBC(60, 59, 55), 90)) { G.FillPath(bgWW, Draw.RoundRectF(bgr, 10)); }
    64. using (LinearGradientBrush lgbXX = new LinearGradientBrush(MinBtn, ARGBC(152, 151, 146), ARGBC(56, 55, 51), 90)) { G.FillEllipse(lgbXX, MinBtn); }
    65. G.DrawEllipse(Pens.DimGray, MinBtn);
    66. DStrF("0", ARGBC(58, 57, 53), new RectangleF((float)5.5, (float)6, (float)0, (float)0));
    67. using (LinearGradientBrush lgbJJ = new LinearGradientBrush(MaxBtn, ARGBC(172, 171, 166), ARGBC(76, 75, 71), 90)) { G.FillEllipse(lgbJJ, MaxBtn); }
    68. G.DrawEllipse(Pens.DimGray, MaxBtn);
    69. DStr("1", ARGBC(58, 57, 53), new Rectangle(26, 7, 0, 0));
    70. using (LinearGradientBrush lgbKK = new LinearGradientBrush(CloseBtn, ARGBC(247, 150, 116), ARGBC(223, 81, 6), 90)) { G.FillEllipse(lgbKK, CloseBtn); }
    71. G.DrawEllipse(Pens.DimGray, CloseBtn);
    72. DStr("r", ARGBC(58, 57, 53), new Rectangle(46, 7, 0, 0));
    73. break;
    74. }
    75. else if (X > 43 && X < 60)
    76. {
    77. using (LinearGradientBrush bgPP = new LinearGradientBrush(bgr, ARGBC(60, 59, 55), ARGBC(60, 59, 55), 90)) { G.FillPath(bgPP, Draw.RoundRectF(bgr, 10)); }
    78. using (LinearGradientBrush lgb1SS = new LinearGradientBrush(MinBtn, ARGBC(152, 151, 146), ARGBC(56, 55, 51), 90)) { G.FillEllipse(lgb1SS, MinBtn); }
    79. G.DrawEllipse(Pens.DimGray, MinBtn);
    80. DStrF("0", ARGBC(58, 57, 53), new RectangleF((float)5.5, (float)6, (float)0, (float)0));
    81. using (LinearGradientBrush lgbRR = new LinearGradientBrush(MaxBtn, ARGBC(152, 151, 146), ARGBC(56, 55, 51), 90)) { G.FillEllipse(lgbRR, MaxBtn); }
    82. G.DrawEllipse(Pens.DimGray, MaxBtn);
    83. DStr("1", ARGBC(58, 57, 53), new Rectangle(26, 7, 0, 0));
    84. using (LinearGradientBrush lgbCC = new LinearGradientBrush(CloseBtn, ARGBC(255, 170, 136), ARGBC(243, 101, 26), 90)) { G.FillEllipse(lgbCC, CloseBtn); }
    85. G.DrawEllipse(Pens.DimGray, CloseBtn);
    86. DStr("r", ARGBC(58, 57, 53), new Rectangle(46, 7, 0, 0));
    87. }
    88. break;
    89. default:
    90. using (LinearGradientBrush bga = new LinearGradientBrush(bgr, ARGBC(60, 59, 55), ARGBC(60, 59, 55), 90)) { G.FillPath(bga, Draw.RoundRectF(bgr, 10)); }
    91. using (LinearGradientBrush lgbb = new LinearGradientBrush(MinBtn, ARGBC(152, 151, 146), ARGBC(56, 55, 51), 90)) { G.FillEllipse(lgbb, MinBtn); }
    92. G.DrawEllipse(Pens.DimGray, MinBtn);
    93. DStrF("0", ARGBC(58, 57, 53), new RectangleF((float)5.5, (float)6, (float)0, (float)0));
    94. using (LinearGradientBrush lgbc = new LinearGradientBrush(MaxBtn, ARGBC(152, 151, 146), ARGBC(56, 55, 51), 90)) { G.FillEllipse(lgbc, MaxBtn); }
    95. G.DrawEllipse(Pens.DimGray, MaxBtn);
    96. DStr("1", ARGBC(58, 57, 53), new Rectangle(26, 7, 0, 0));
    97. using (LinearGradientBrush lgbd = new LinearGradientBrush(CloseBtn, ARGBC(247, 150, 116), ARGBC(223, 81, 6), 90)) { G.FillEllipse(lgbd, CloseBtn); }
    98. G.DrawEllipse(Pens.DimGray, CloseBtn);
    99. DStr("r", ARGBC(58, 57, 53), new Rectangle(46, 7, 0, 0));
    100. break;
    101. }
    102. }
    103. protected override void Dispose(bool disposing)
    104. {
    105. if (disposing)
    106. {
    107. }
    108. base.Dispose(disposing);
    109. }
    110. }

    Daniel Baumert schrieb:

    optimal schreiben kann
    man das nur mit einer aufrufenden Anwendung.
    Kannst Du die posten?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!