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