Объекты в качестве аргументов метода - 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");
}
}