文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>c#4.0协变逆变的理解

c#4.0协变逆变的理解

时间:2011-01-14  来源:诺贝尔

第一点:不管是协变还是逆变,其实都是完全遵从类型兼容的,只是将一个本来应该默认实现的东西,改为显式的声明。这个是从调用者角度出发的观点,你可以把协变和逆变都认为是“理所当然”的。

第二点,在理解的时候,需要把参考的对象固定为函数相对函数的兼容上。


把父类看作更大的类型。

 从小到大 是协调的。

从大到小 是反常的。

 举例:

 大 funA(小)。

 小 funB(大)。

 funA 包容 funB。因为所有用到funA的场合都能替换成funB,反之不成立。


从函数兼容的角度(funB -> funA):

返回类型是协调的。

参数类型是反常的。


从调用者角度,从来都是由小类型传到大类型的。

四种调用场合:

大 a = funB()

funB(小)

大 a = funA()

funA(小)


只属于funB的特定场合:

小 a = funB()

funB(大)


相关阅读 更多 +
排行榜 更多 +
后室双重现实游戏下载

后室双重现实游戏下载

冒险解谜 下载
魔音少女模拟器下载最新版

魔音少女模拟器下载最新版

模拟经营 下载
雷曼大冒险官方版下载

雷曼大冒险官方版下载

冒险解谜 下载