.NET 4.x ООП, сокращение строк кода - C#
Формулировка задачи:
В программе мы выбираем режим:
1,2,3
В каждом классе используется один и тот же метод Hello, он дублируется, а вот метод Write у всех классов разный.
Вопрос: как сократить код? Чтобы Hello был один, а вызывал он разные методы Write классов.
Можно ли переопределить метод Write 1 раз, а потом его в цикле прокрутить?
Листинг программы
- class Program
- {
- static void Main()
- {
- A a = new A();
- B b = new B();
- C c = new C();
- while (true)
- {
- var input = Console.ReadLine();
- switch (input)
- {
- case "1":
- a.Hello();
- break;
- case "2":
- b.Hello();
- break;
- case "3":
- c.Hello();
- break;
- case "Close":
- return;
- }
- }
- }
- class A
- {
- public void Hello()
- {
- for (var i = 0; i < 3; i++)
- {
- Write();
- }
- }
- private void Write()
- {
- Console.WriteLine("А");
- }
- }
- class B
- {
- public void Hello()
- {
- for (var i = 0; i < 3; i++)
- {
- Write();
- }
- }
- private void Write()
- {
- Console.WriteLine("B");
- }
- }
- class C
- {
- public void Hello()
- {
- for (var i = 0; i < 3; i++)
- {
- Write();
- }
- }
- private void Write()
- {
- Console.WriteLine("C");
- }
- }
- }
Решение задачи: «.NET 4.x ООП, сокращение строк кода»
textual
Листинг программы
- abstract class Base
- {
- public void Hello()
- {
- for (var i = 0; i < 3; i++)
- {
- Write();
- }
- }
- protected abstract void Write();
- }
- class A : Base { protected override void Write() { Console.WriteLine("A"); } }
- class B : Base { protected override void Write() { Console.WriteLine("B"); } }
- class C : Base { protected override void Write() { Console.WriteLine("C"); } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д