Roy*_*mir 6 c# dynamic multiple-dispatch .net-4.0
我有这些课程:
class Asset
{ }
class House:Asset
{ }
Run Code Online (Sandbox Code Playgroud)
考虑这些局外人的静态功能:
static void Foo (Asset a) { }
static void Foo (House h) { }
Run Code Online (Sandbox Code Playgroud)
如果我写:
House h = new House (...);
Foo(h);
Run Code Online (Sandbox Code Playgroud)
它会调用Foo(House)(编译时绑定)
如果我写:
Asset a = new House (...);
Foo(a);
Run Code Online (Sandbox Code Playgroud)
它会调用Foo(Asset) (编译时绑定)
目标:访问运行时类型方法:
我有2个选择:
1)使用动态如下:
Asset a = new House (...);
Foo ((dynamic)a); // NOW it will call Foo(House)
Run Code Online (Sandbox Code Playgroud)
2)将功能从使用移动static到override使用polymorphism mechanism.
问题:
有没有其他方法(没有将功能移动到polymorphism mechanism|| dynamic)?
| 归档时间: |
|
| 查看次数: |
2823 次 |
| 最近记录: |