c #несколько вариантов отправки?

У меня есть эти классы:

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)?

6
задан Royi Namir 26 April 2012 в 09:36
поделиться