.NET 4.x ООП, сокращение строк кода - C#

Узнай цену своей работы

Формулировка задачи:

В программе мы выбираем режим: 1,2,3 В каждом классе используется один и тот же метод Hello, он дублируется, а вот метод Write у всех классов разный. Вопрос: как сократить код? Чтобы Hello был один, а вызывал он разные методы Write классов. Можно ли переопределить метод Write 1 раз, а потом его в цикле прокрутить?
Листинг программы
  1. class Program
  2. {
  3. static void Main()
  4. {
  5. A a = new A();
  6. B b = new B();
  7. C c = new C();
  8. while (true)
  9. {
  10. var input = Console.ReadLine();
  11. switch (input)
  12. {
  13. case "1":
  14. a.Hello();
  15. break;
  16. case "2":
  17. b.Hello();
  18. break;
  19. case "3":
  20. c.Hello();
  21. break;
  22. case "Close":
  23. return;
  24. }
  25. }
  26. }
  27. class A
  28. {
  29. public void Hello()
  30. {
  31. for (var i = 0; i < 3; i++)
  32. {
  33. Write();
  34. }
  35. }
  36. private void Write()
  37. {
  38. Console.WriteLine("А");
  39. }
  40. }
  41. class B
  42. {
  43. public void Hello()
  44. {
  45. for (var i = 0; i < 3; i++)
  46. {
  47. Write();
  48. }
  49. }
  50. private void Write()
  51. {
  52. Console.WriteLine("B");
  53. }
  54. }
  55. class C
  56. {
  57. public void Hello()
  58. {
  59. for (var i = 0; i < 3; i++)
  60. {
  61. Write();
  62. }
  63. }
  64. private void Write()
  65. {
  66. Console.WriteLine("C");
  67. }
  68. }
  69. }

Решение задачи: «.NET 4.x ООП, сокращение строк кода»

textual
Листинг программы
  1. abstract class Base
  2. {
  3.     public void Hello()
  4.     {
  5.         for (var i = 0; i < 3; i++)
  6.         {
  7.             Write();
  8.         }
  9.     }
  10.  
  11.     protected abstract void Write();
  12. }
  13.  
  14. class A : Base { protected override void Write() { Console.WriteLine("A"); } }
  15. class B : Base { protected override void Write() { Console.WriteLine("B"); } }
  16. class C : Base { protected override void Write() { Console.WriteLine("C"); } }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы