强 Duck Typing 特性被从 VB 9 中删除

阅读数:29 2007 年 4 月 3 日

话题:.NET语言 & 开发

Visual Basic 已经实现了 Duck typing 的功能,也就是常说的动态接口(Dynamic Interfaces)。但因为时间关系,在发布的 Orcas 版里

去除了这一特性

通过 Duck typing 功能,程序员可以基于方法或者属性交换对象,而不用基于类型或者接口。虽然这样做使得代码的可重用性更高,但同时也因为后绑定引发了一些问题,比如非法类型转型(invalid cast)和丢失方法错误(Exceptions)等。

动态接口和普通接口的定义基本一样,除了一个关键区别。使用普通接口时,开发类的程序员必须声明在类被编译时类实现了哪个接口。动态接口就可以不管这些,任何恰好有这些正确的方法和属性的类在运行时,都被当作已经实现了接口来处理。上述效果可以由开发者通过对类增加接口而非子类继承的方式获得。

更多关于 VB 9 当前计划的信息,请浏览

2007 年二月份的 Visual Basic 9.0 概览

注:感谢全国海关信息中心高级架构师王翔对本译文的技术审校。