Använd vänsterpil och högerpil för att navigera

Eller Ctrl+P för att skriva ut till PDF (eller på papper)

Föreläsning 19

Egna abstraktioner

Problem med Windows Forms

Lösningen

Flagga

Design av abstraktionen

Förenklad variant #1

Metod som ritar ut Belgiens flagga

Förenklad variant #2

Metod som ritar ut lodrät trikolor

Fullständiga varianten

Metod som ritar ut vågrät eller lodrät trikolor

Fler abstraktioner

Varför egna abstraktioner?

Risker med abstraktioner

Hur ska metoden interagera med resten av koden?

Returvärde

  1. private TableLayoutPanel CreateFlag(...) {
  2. TableLayoutPanel flag = new TableLayoutPanel {
  3. ...
  4. };
  5. ...
  6. return flag;
  7. }
  8. public MyForm() {
  9. TableLayoutPanel flag = CreateFlag(...);
  10. Controls.Add(flag);
  11. }

Anropa metoder på instansvariabler

  1. private void CreateFlag(...) {
  2. TableLayoutPanel flag = new TableLayoutPanel {
  3. ...
  4. };
  5. ...
  6. Controls.Add(flag);
  7. }

Anropa metoder på argument

  1. private void CreateFlag(Control container, ...) {
  2. TableLayoutPanel flag = new TableLayoutPanel {
  3. ...
  4. };
  5. ...
  6. container.Controls.Add(flag);
  7. }
  8. public MyForm() {
  9. TableLayoutPanel layout = new TableLayoutPanel {
  10. ...
  11. };
  12. Controls.Add(layout);
  13. CreateFlag(layout, ...);
  14. }

Anropa globala metoder

  1. private void DisplayInfo(...) {
  2. ...
  3. MessageBox.Show(...);
  4. }
  5. public MyForm() {
  6. ...
  7. DisplayInfo(...);
  8. }