.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"); } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д