如果你只|

陈侠云

园龄:2年10个月粉丝:1关注:1

观《深入理解C#》有感---泛型可变性的缺乏

泛型不支持协变性,数组支持,举个例子:

image

要注意如下代码:

animals2[0] = new Dog();

虽然编译能够通过,但运行后就会报错。本书中,作者给了它俩支持协变性的不同原因,以下是原话叙述。
泛型:泛型的设计者认为,这比编译时就失败还要糟糕——静态类型的全部意义就在于在代码运行之前找出错误。
数组:设计者希望能面向尽可能多的用户,为此采取的策略之一就是允许支持从Java中编译来的代码,换句话说,.NET之所以有协变数组,是因为Java有协变数组——虽然这个功能在Java中是一个公认的“瑕疵”

本文作者:陈侠云

本文链接:https://www.cnblogs.com/chenxiayun/p/18298944

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   陈侠云  阅读(6)  评论(0编辑  收藏  举报
//雪花飘落效果
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起