不要为基类或接口创建泛型的特殊实现

来源:互联网 发布:mysql 指令大全 编辑:程序博客网 时间:2024/05/22 06:31
引入泛型方法将让编译器对重载的解析变得非常复杂。每个泛型方法的类型参数都可以任意替换。如果稍有疏忽,程序的行为将变得极其古怪。在创意泛型类型或方法时,必须保证让使用者能够尽可能地理解你的设计意图,安全的使用代码。因此需要非常小心对重载的解析,还要了解哪个方法将会更好地匹配开发者的原本意图。 1,对于一个派生于MyBase的对象来说,WriteMessage《T》(T obj)要比WriteMessage(MyBase b)在重载匹配上更加优先。因为通过将T替换成MyDerived,编译器即可完成一个精确的匹配,而WriteMessage(MyBase)则还需要一次隐式转换。于是在这里泛型方法占得了上风。
原创粉丝点击