У меня есть эти классы:
class Asset
{ }
class House:Asset
{ }
считают эти внешние статические функции:
static void Foo (Asset a) { }
static void Foo (House h) { }
Если я напишу:
House h = new House (...);
Foo(h);
это вызоветFoo(House)
(привязку времени компиляции)
если я напишу:
Asset a = new House (...);
Foo(a);
он вызоветFoo(Asset)
(привязку времени компиляции)
цель :доступ к методу типа времени выполнения:
у меня есть 2 варианта:
1 )используя такую динамику:
Asset a = new House (...);
Foo ((dynamic)a); // NOW it will call Foo(House)
2 )переместите функции из static
в override
с помощью polymorphism mechanism
.
вопрос:
есть ли другой способ сделать это (без перемещения функций в polymorphism mechanism
||dynamic
)?