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. 题 : 有没有其他方法这样做(没有将函数移动到多态机制||动态)? 解决方法
这就是动态关键字的用途.它实际上是一个非常干净的&快速做多次派遣的方法. 您对Multiple Dispatch的最终选择是 >动态
所以是的,当你可以使用动态快速,不易出错且真正的clean syntax wise时,有很多方法可以做你需要做很多工作. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |