根据 Anders 的说法,在 C#4.0 中,我们将获得动态类型,或“静态类型为动态”的对象。这将允许在运行时而不是编译时发生任何方法调用解析。但是是否有工具将动态对象绑定到某种合约(从而也获得完整的智能感知),而不是允许对其进行任何调用,即使你知道这不太可能是有效的。
即,而不仅仅是
dynamic foo = GetSomeDynamicObject();
有能力对其进行转换或转换以将其限制为已知的合同,例如
IFoo foo2 = foo.To<IFoo>;
甚至只是
IFoo foo2 = foo as IFoo;
在 C#4.0 的现有材料中找不到类似的东西,但它似乎是动态范式的逻辑扩展。有更多信息的人吗?