Arn*_*sen 5 duck-typing dynamic c#-4.0
根据Anders的说法,在C#4.0中,我们将获得动态类型或"静态类型是动态的"对象.这将允许任何方法调用解析在运行时而不是编译时发生.但是,是否有设施将动态对象绑定到某种合同(从而也可以获得完整的智能感知),而不是允许对它进行任何调用,即使您知道它不可能有效.
即不仅仅是
dynamic foo = GetSomeDynamicObject();
Run Code Online (Sandbox Code Playgroud)
能够投射或转换它以将其约束为已知合约,例如
IFoo foo2 = foo.To<IFoo>;
Run Code Online (Sandbox Code Playgroud)
甚至只是
IFoo foo2 = foo as IFoo;
Run Code Online (Sandbox Code Playgroud)
在C#4.0的现有材料中找不到类似的东西,但它似乎是动态范例的逻辑扩展.有更多信息的人?
恐怕我不知道有什么真正类似于鸭子打字的东西。我已经在博客中讨论了这个想法,但我不希望得到任何支持。使用 Reflection.Emit 来创建一个类,该类将生成任何给定接口的实现,在构造函数中获取动态对象并仅代理对它的每个调用,这可能不会太难。并不理想,但这可能是权宜之计。
| 归档时间: |
|
| 查看次数: |
750 次 |
| 最近记录: |