.NET 4.x Почему если при вызове метода Foo от типа B, в объекте класса FooImp вызывается метод от А? - C#
Формулировка задачи:
Поясните пожалуйста, почему если при вызове метода Foo от типа B, в объекте класса FooImp вызывается метод от А ?
Если посмотреть в дебагере на this внутри метода А.Foo то тип определяется как B.
Листинг программы
- public class FooImp
- {
- public void Foo(A a)
- {
- Console.WriteLine("a");
- }
- public void Foo(B b)
- {
- Console.WriteLine("b");
- }
- }
- public class A
- {
- public void Foo(FooImp f)
- {
- f.Foo(this);
- }
- }
- public class B:A { }
- static void Main(string[] args)
- {
- var b = new B();
- b.Foo(new FooImp());
- }
Решение задачи: «.NET 4.x Почему если при вызове метода Foo от типа B, в объекте класса FooImp вызывается метод от А?»
textual
Листинг программы
- public class A
- {
- public void Foo(FooImp f)
- {
- Console.WriteLine(this.GetType());
- f.Foo(this);
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д