Объекты в качестве аргументов метода - C#
Формулировка задачи:
Приветствую.
Имею код:
При вызове:
В консоли оказывается не ожидаемая мной child, а parent. Какое-то время обходился вводом интерфейса (Пусть будет I), и заметой типа аргумента с A на этот интерфейс I, однако, хотелось бы услышать все же правильный способ.
Заранее спасибо.
Листинг программы
- class A
- {
- public void Method()
- {
- Console.WriteLine("parent");
- }
- public static void Test(A arg)
- {
- arg.Method();
- }
- }
- class B : A
- {
- new public void Method()
- {
- Console.WriteLine("child");
- }
- }
Листинг программы
- A.Test(new B());
Решение задачи: «Объекты в качестве аргументов метода»
textual
Листинг программы
- class A
- {
- // ну и можно скрыть от клиентского кода, раз уж напрямую не используете
- protected virtual void Method()
- {
- Console.WriteLine("parent");
- }
- public static void Test(A arg)
- {
- arg.Method();
- }
- }
- class B : A
- {
- protected override void Method()
- {
- Console.WriteLine("child");
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д